【发布时间】:2013-03-24 23:57:00
【问题描述】:
我在尝试声明我自己的类“myClass”的实例时遇到了问题。
例如,myClass class() 给出了编译错误。
我做了一些阅读,现在知道为什么了,因为我本质上是在声明一个函数“类”,它不带参数并返回类型“myClass”。我现在看到了。但我不明白的是,如果我有一个重载的构造函数,为什么编译器不这么认为:myClass class(argument) 我是否试图用一个返回类型“myClass”的参数声明一个函数“类”?
是不是因为没有参数类型,然后才知道它的构造函数重载了?
【问题讨论】:
-
对于它的价值,你的问题是经常讨论的主题most-vexxing-parse
-
@WhozCraig - 这不是“最令人头疼的解析”。它只是一个函数声明。最令人头疼的解析涉及使用默认构造的临时参数调用函数;编译器将构造视为参数声明(带有多余的括号),并给出错误。