【请问】一个和类同名的普通函数,引发的疑问(内有很简单的代码)
【请教】一个和类同名的普通函数,引发的疑问(内有很简单的代码)如下代码编译通过,但注释行的注释符去掉,则编
【请教】一个和类同名的普通函数,引发的疑问(内有很简单的代码)
如下代码编译通过,但注释行的注释符去掉,则编译错误了。哪位大侠可以帮忙解释一下?
C/C++ code#include <iostream>class A{};A A(A aa){ return aa;}int main(){ //A ee; return 0;}
编译环境 Code:Blocks+mingw,应该不会和IDE以及编译器有关吧
[解决办法]显然,编译器不知道你这里的ee究竟应该是什么
[解决办法]问题出在你的构造函数的定义上了
A A(A aa)
{
return aa;
}
你这构造函数又是返回值,参数又是A aa的违反了标准了。
[解决办法]自己去看标准的12.1那章节吧
[解决办法]A A(A aa)只是定义了一个全局函数A 参数A 返回A
直接写A aa编译器会优先绑定函数A 所以报语法错误
改成下面的可以编译通过
C/C++ codeint main(){ class A ee; return 0;}
[解决办法]
C++里没人这样写函数,也没这样的需求。