1

可能重复:
为什么我更喜欢使用成员初始化列表?

A 类有一个成员变量 i。i 可以在对象创建期间被初始化或分配。

A) 初始化

   class A {
         int i;
    public:
        A(int _i) : i(_i){}
    }

B) 分配

class A {
         int i;
    public:
        A(int _i) : { i = _i}
    }

我的问题是这两种方法之间的基本区别是什么?

4

1 回答 1

2

i不同之处在于在您的类中使用哪种 C++ 机制进行初始化。案例 (A) 通过构造函数对其进行初始化,案例 (B) 使用赋值运算符(如果未定义赋值运算符,则使用复制构造函数)。

大多数 C++ 编译器会为这个特定示例生成完全相同的代码,因为您使用的是 int,它是一种“普通旧数据”类型。如果i是类类型,它可能会产生很大的不同。

于 2012-04-13T02:05:30.223 回答