导读
【声明】是告诉编译器某个东西的 名称 和 类型,但略去细节。 声明揭示其签名(signature), 也就是 参数 和 返回值类型。
【定义】 提供编译器一些声明所遗漏的细节:
- 对于对象而言,是为此对象拨发内存的地点;
- 对于function,提供了函数的实现;
- 对class而言,列出了它的成员。
初始化由【构造函数】执行。 default构造函数,要么没有参数,要么每个参数都有缺省值。 构造函数声明为 explicit 比较好,它禁止编译器执行非预期的隐式类型转换。
【拷贝构造函数】 “以同型对象初始化自我对象“: A(const A& rhs )
小心赋值符号 ,因为"=" 语法也可 用来调用拷贝构造函数 。
如 widge w3=w2 (只要这是个新对象,那他就调用拷贝构造函数) ;
【拷贝赋值操作符】“拷被一个同型对象的值 到 自我对象”: A& operator=(const A& rhs);
判断"="的调用: 如果一个新对象被定义,一定有个构造函数被调用,不可能是赋值操作。
拷贝构造函数 十分重要,因为 它定义 一个对象如何 passed by value 。(by value 传递用户自定义类型通常是个坏主意)