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