消除混乱:理解“无参数构造函数”语法
尝试使用无参数构造函数初始化对象时,程序员可能会遇到神秘的编译时错误“error: request for member '>'”在 '>' 中,它是非类类型 '> ()()'"。这个令人费解的消息源于 C 中的语法歧义。
传统上,在 C 中,没有参数的构造函数可以用两种语法上等效的方式声明:
但是,语言标准规定空括号构造函数声明将始终被解释为函数声明,没有为空构造函数初始化留下空间。
相反,在特定情况下允许使用空括号初始化器,例如在新表达式中初始化类或构造值初始化的临时值时。因此,要解决解析错误并定义空构造函数,程序员必须显式排除括号并编写:
MyClass myObj;
此澄清解决了歧义并确保编译器正确解释代码作为带有空初始值设定项的对象定义,允许程序成功编译。
以上是为什么我的无参数构造函数会导致编译错误?的详细内容。更多信息请关注PHP中文网其他相关文章!