1
2
无论您是否定义任何其他构造函数,都会提供复制构造函数。只要不声明复制构造函数,就可以得到一个。 只有在未声明构造函数的情况下才提供无参数构造函数。因此,除非您想要一个无参数构造函数,否则您不会遇到问题,但认为编写一个构造函数是浪费时间。 Irc,c++0x有一种将构造委托给另一个构造函数的方法。我记不清细节,但它允许您通过指定另一个构造函数以及要传递给它的参数来定义无参数构造函数。在某些情况下可能会节省键入某些数据成员初始值设定项的时间。但是默认的no-arg构造函数也不会提供这些初始化器。 |
2
3
你不能-编译器在你提供自己的默认构造函数时会关闭一些自动生成的默认构造函数,这样你就可以阻止默认的类构造。但是,我认为C++0x将允许显式地声明默认编译器实现,例如:
我不认为任何编译器支持这个-C++0x(因为下一个标准已经知道)还不是最终的,所以现在你只需要做你的默认构造函数。代码不多!
|
3
1
编译器将始终生成默认的复制构造函数,除非您提供自己的复制构造函数定义。您的问题只是默认的无参数构造函数,如果存在任何构造函数定义,则不会生成该构造函数。但不难提供与生成的构造函数行为完全相同的参数构造函数:
|
Vincent · 空的默认构造函数和成员初始化 9 年前 |
WileTheCoyot · 了解隐式声明的默认构造函数 10 年前 |
user2975787 · Java构造函数看起来不像它应该的样子 10 年前 |
Raj · 如何使构造函数同步? 10 年前 |