木子屋 Dnawo's BLOG

C++默认构造函数

👤 dnawo 📅 2010-11-22 👁 5179 👍 0 💬 0 🔄 本站原创
代码一:
#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)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 C++程序每次运行时同一变量的内存地址都相同的解释 下一篇 → C++在构造函数中初始化成员变量的两种方法