C++中可不可以没有构造函数?

我不写的话,有一些情况编译器提供,那其他情况呢?可不可以没有呢?

如果类没有任何构造函数和拷贝构造函数,那么编译器会默认生成一个默认构造函数.

但是如果你的类已经有了自己的带参数的构造函数,或者拷贝构造函数,那么不会帮助你生产默认构造函数.
例如

C/C++ code
class abc
{
...
abc(int i)
...
}

int main
{
abc a1; // 错误,系统没有默认构造函数
abc a2(2); // 可以正常使用
return 0;
}

最不可行的类是,只有拷贝构造函数,却没有定义任何构造函数的情况,这样的类虽然可以编译通过,却根本无法正常进行对象的事例化.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-03-05
你的程序,自己不定义新类,可以不写构造函数。
继承老类的类,也可以不写。

默认不做事的 构造函数, 就是 与类 同名,加 括号,无参数的 函数。可以不写(也就是可以没有啦)。
第2个回答  2008-03-05
自己定义的类,如果没写构造函数,那么编译器会自动为其创建一个默认无参的空构造函数.函数名与类名相同.
第3个回答  2008-03-05
构造函数有两个作用:类的实例化(创建对象)和对象的初始化
如果未定义构造函数,系统会在创建对象时自动调用构造函数,但初始化的功能只能通过用户调用构造函数实现.
第4个回答  2008-03-05
不管怎么养,最好还是写个默认构造函数。
很多情况下可以直接调用它来初始化对象。

有益无害吧。
相似回答