Sphere() : theRadius(1.0)
{
}
为什么用初始化器编写的构造函数(上图)比在其主体中初始化数据成员的构造函数(下图)更可取?
Sphere()
{
theRadius = 1.0;
}
最佳答案
所有成员在进入构造函数主体之前都已初始化。如果您没有在初始化列表中提供初始化程序,那么它们是默认构造的。
在您的第一个示例中,发生了以下情况:
theRadius
初始化为 1.0
在您的第二个示例中,发生以下情况:
theRadius
已初始化- 1.0 被复制到
theRadius
对于像整数和 float 这样的简单类型,这无关紧要。但是,如果您的成员是具有非平凡构造函数/复制构造函数的对象,那么使用初始化列表方法会更有效。
关于c++ - 在 C++ 中对构造函数使用初始值设定项有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803079/