c++自动提供了下面这些成员函数
1)默认构造函数
2)复制构造函数
3)复制操作符------ 将已有对象赋给另一个对象时,使用重载的赋值操作符
4)默认析构函数
5)地址操作符函数-------- 隐式地址操作符返回调用对象的地址(即this指针的值)
当函数按值传递对象时或函数返回对象时,都使用复制构造函数,但按引用传递时不是这样 如:Stock stock1; void callme(Stock a)
复制如:Stock stock1; Stock stock2 = stock1;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
默认的复制函数逐个复制非静态成员(成员复制称为浅复制)复制的是成员的值
如 StringBad sports; StringBad sailor = sports <<===>>//char *str/len(类中的成员) StirngBad sailor; sailor.str = sports.str; sailor.len = sports.len;
warning : 如果类中包含了使用new初始化的指针成员,则应当定义一个复制构造函数,以复制指向数据而不是指针,这被称为深复制,浅复制只是复制指针的值;;;;
阅读(527) | 评论(0) | 转发(0) |