C++ 对象的初始化和赋值
——设置对象的值既可以通过初始化,也可以采用赋值的方式
利用构造函数创建临时对象进行赋值:
Stock stock; // 声明一个Stock对象 ... stock = Stock("Boffo Objects", 2, 2.0); // 对stock重新赋值(或可以理解为初始化)
调用构造函数来创建一个临时对象,然后将该临时对象复制到stock中,并丢弃它(即使用了临时对象后编译器选择时间删除临时对象,并为临时对象调用析构函数)
使用已有对象给对象赋值:
stock2 = stock1; // object assignment
在默认情况下,将一个对象赋值给同类型的另一个对象时,C++将源对象的每一个数据成员的内容复制到目标对象中相应的数据成员中
如果既可以通过初始化,也可以通过赋值来设置对象的值,则应采用初始化方式。通常这种方式的效率更高。
C++11列表初始化:
在C++11中,可将列表初始化语法用于类。只要提供与某个构造参数的参数列表匹配的内容,并用大括号将它们括起:
Stock hot_tip = {"Derivatives Plus Plus", 100, 45.0}; // 与使用参数列表直接初始化数据成员不同,这里作为函数参数使用 Stock jock {"Sport Age Storage, Inc"}; Stock temp {};