64,680
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class A
{
public:
A():i(10)
{
cout<<i<<endl;
}
void f()
{
cout<<i<<endl;
}
~A(){}
private:
int i;
};
int main()
{
A *ent1 = new A();//编译连接通过,输出10
A ent2(); //编译连接通过,但没有输出任何数字
A ent3; //编译连接通过,输出10
A *ent4; //运行时报错
ent4->f();
return 0;
}
问题:
1. 为什么 A ent2(),编译连接通过,但没有输出任何数字,而 A ent3;能正确运行?
2. 为什么 A *ent4; 不能自动调用构造函数,而 A ent3 则可以?