#include <iostream>
using namespace std;
class AA
{
};
int main()
{
AA *a=new AA();
return 0;
}执行正确,说明编译器为我们创建了默认了构造函数(没有参数的构造函数)。
代码二:
#include <iostream>
using namespace std;
class AA
{
public:
AA(){cout<<"自定义默认构造函数"<<endl;}
};
int main()
{
AA *a=new AA();
return 0;
}执行正确并输出了文本,说明使用了我们自定义的默认构造函数。
代码三:
#include <iostream>
using namespace std;
class AA
{
public:
AA(int a, int b){}
};
int main()
{
AA *a=new AA();
return 0;
}执行出错,提示缺少默认的构造函数。
代码四:
#include <iostream>
using namespace std;
class AA
{
public:
AA(){cout<<"自定义默认构造函数"<<endl;}
AA(int a, int b){}
};
int main()
{
AA *a=new AA();
return 0;
}执行正确并输出文本,说明使用了我们自定义的默认构造函数。
总结
在C++中,当我们没有为类定义任何构造函数时,编译会创建默认构造函数;如果我们为类定义了一个构造函数,无论该构造函数是默认构造函数,还是非默认构造函数,编译器都不再为我们创建默认构造函数,在C#中也是这样子的。
评论(0)
暂无评论。