看看这段代码片段:函数名和花括号之间的成员变量赋值的名称和原因是什么?
Size::Size(int iSetWidth, int iSetHeight)
:iWidth(iSetWidth),
iHeight(iSetHeight)
{
}
据推测,这意味着同样的事情:
Size::Size(int iSetWidth, int iSetHeight)
{
iWidth=iSetWidth;
iHeight=iSetHeight;
}
为什么你会使用前者还是后者?前者的名字是什么?
除了Gorpik写的(我的'+ 1',BTW):在像Java和C#这样的语言中,所有变量都是_references_,这并不重要,因为成员无论如何,初始化只是一个地址分配。在C++中,类数据成员通常是初始化的真正对象,而不是初始化为引用堆上对象的引用(指针)。例如,对于'std :: string'的合理实现,默认初始化后跟赋值可能比立即使用正确数据初始化要慢得多。 – sbi 2010-09-02 11:09:16
@sbi:并非所有变量都是C#中的引用。该语言也具有价值类型:) – jalf 2010-09-02 12:04:30
@jalf:我故意简化了一些东西。 – sbi 2010-09-02 19:18:12