Enk*_*pta 0 c++ constructor object
关于c ++中的以下代码,我有两个问题.
这条线A obj()的main()意思是什么?它没有给出任何错误.
为什么下一行obj.fun();会出现以下错误?
请求'obj'中的成员'fun',这是非类型'A()'
代码是:
#include<iostream>
using namespace std;
class A{
public:
A(){
cout<<"Constuctor called\n";
}
~A(){
cout<<"Destuctor called\n";
}
void fun(){
cout<<"YES";
}
};
int main(){
A obj();
obj.fun();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常棘手的问题,但你实际上声明obj为一个函数,它不接受任何参数并返回一个实例A.
改成
A obj;
Run Code Online (Sandbox Code Playgroud)
如果您有一个支持C++ 11的编译器(现在大多数情况下,除非您运行旧版本,但有些需要特殊标志才能启用它),那么您也可以
A obj{};
Run Code Online (Sandbox Code Playgroud)