我们可以在C ++中使用默认构造函数的主体吗?

时间:2011-02-08 20:11:37

标签: c++ default-constructor

我们可以在C ++中使用默认构造函数的主体吗?

感谢。

4 个答案:

答案 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.
       }
};