【发布时间】:2018-12-13 10:54:58
【问题描述】:
我试图了解以下类之间的真正区别。
class A
{
public:
A()
:width(500)
,height(300){};
int width;
int height;
};
class B
{
public:
B()
{
width = 500;
height = 300;
};
int width;
int height;
};
class C
{
public:
int width = 500;
int height = 300;
};
您认为在一个类中初始化width 和height 变量的最佳方法是哪一个?
我应该坚持一种方式而不是其他方式吗?
【问题讨论】:
-
使用A或者C。B是赋值,不是初始化,这和非原始成员和不能赋值的东西有很大区别。
-
对于这个类,它们都是一样的;但是对于更复杂的类(特别是 - 数据成员不是原始类型),它们是不同的,如链接问题中所述
-
@M.M 这不是您提出的问题的重复,因为它不包括
class C之类的内容。 -
好的。但是,当您询问人们的意见时,我投票决定以“主要基于意见”的方式结束。
标签: c++ class constructor initialization initializer-list