c++有关初始化列表和构造函数的问题

很多博客都有说过,const只能使用初始化列表。

c++有关初始化列表和构造函数的问题

这里给出一个示例,因为const变量只能在定义的时候进行初始化,并且不能修改。

而初始化列表就是这样实现的。

但对于下面的构造函数来说,他先创建了cpu ram这几个成员变量,再进行的赋值,这时候并没有调用cpu ram这些成员的复制构造函数,而是直接调用的他们自身的构造函数。

c++有关初始化列表和构造函数的问题

c++有关初始化列表和构造函数的问题

区别就在这里,初始化列表,直接初始化成员。

 

细节一点。初始化列表的代码就相当于CPU cpu(obj.cpu)

而构造函数相当于 CPU cpu;

cpu = obj.cpu

差别就在于上面调用了复制构造函数,下面调用了构造函数,和赋值操作。