2011-02-08 42 views

回答

11

是的,当然可以。任何不需要参数的构造函数都是默认的构造函数。

+1

是的,就像这样简单:class A {public:A(){/ * your body here * /}}; – 2011-02-08 20:15:53

0

构造函数用于初始化类的成员。所以,任何构造函数都可以有一个body。通过为自己提供一个构造函数,你就可以使用默认的构造函数。

class foo 
{ 
    int x ; 
    public: 
     foo() // default constructor 
     { 
      x=10; // How ever you can achieve this with initializer lists too. 
     } 
}; 
1

是的缺省构造函数(即没有任何参数的构造函数)可以像任何其他构造函数一样拥有一个主体。这是放置“默认”初始化代码的好地方。将成员变量设置为合理的值。也许将指针设置为null或分配组件对象。

也许“默认”这个词是造成混淆的原因?在没有任何特定参数的情况下调用是默认的,如果没有定义,则不一定是默认参数。

1

不需要显式指定默认构造函数。然而,继续前进并明确实现一个是一个好习惯,这样您就不会依赖默认行为来达到您真正想要的效果。

如果你确实实现了一个公共的默认构造函数,它肯定应该有一个body,即使它是空的。

在某些情况下,可以拥有受保护的或私人的ctor。如果ctor是私有的(被称为隐藏构造函数),ctor是私有的,如果它没有函数体,因为它永远不会被调用,所以它是可以的。