You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构造函数能否与类名不一致?异常代码可运行原因咨询

构造函数名称能否与类名不同?

哈哈,这个问题我刚好碰到过类似的情况,给你理清楚:

核心规则:构造函数必须与类名一致

在绝大多数主流面向对象编程语言(比如C++、Java)里,构造函数的名称必须和类的名称完全匹配(C++区分大小写,Java也一样)。如果一个成员函数的名字和类名不一样,那它本质上就是个普通的成员函数,根本不是构造函数——编译器不会把它当成构造函数来处理。

你看到的现象原因:代码根本没被编译

你发现的那段“构造函数名称和类名不同”的代码能“存在”,核心原因是这个类的文件从未被编译过——它不在Makefile的源码列表里,所以编译器从来没读取、检查过这段代码。

简单说,这段代码就是躺在文件里的“无效代码”,不管语法对不对、符不符合语言规则,只要没被编译器处理,就不会触发报错,也不会对程序运行有任何影响。要是哪天有人把这个类的文件加入Makefile编译列表,编译器马上就会抛出错误:要么提示找不到合法的构造函数(如果类里没有其他正确的构造函数),要么那个“假构造函数”会被当成普通函数处理。


内容的提问来源于stack exchange,提问作者Seong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:12:33