我们可以在C ++中使用默认构造函数的主体吗?
感谢。
答案 0 :(得分:11)
是的,当然可以。任何不需要参数的构造函数都是默认构造函数。
答案 1 :(得分:1)
是的默认构造函数(即没有任何参数的构造函数)可以像任何其他构造函数一样具有正文。这是放置“默认”初始化代码的好地方。将成员变量设置为合理的值。也许将指针设置为null或分配组件对象。
也许“默认”这个词是引起混淆的原因?在没有任何特定参数的情况下调用它是默认值,如果没有定义则不一定是默认值。
答案 2 :(得分:1)
不需要显式指定默认构造函数。但是,最好继续并明确地实现一个,这样你就不会依赖默认行为来实现你真正想要的了。
如果你实现了一个公共默认构造函数,它肯定应该有一个正文,即使它是空的。
在某些情况下,拥有受保护或私人的ctor是可以的。如果ctor是私有的(被称为隐藏的构造函数),则ctor是私有的,如果它没有函数体,则可以,因为它永远不会被调用。
答案 3 :(得分:0)
构造函数用于初始化类的成员。所以,当然任何构造函数都可以有一个正文。通过为自己提供构造函数,您只需要使用默认构造函数。
class foo
{
int x ;
public:
foo() // default constructor
{
x=10; // How ever you can achieve this with initializer lists too.
}
};