赋值运算符重载: 是用一个已经存在的对象去给另一个已经存在并初始化(调用过构造函数)的对象进行赋值。 拷贝构造函数:其实本质还是构造函数,用一个已存在的对象去构造一个原先不存在的对象。 string a("hello"); string b("world"); string c =a ; //拷贝构造函数 c = b; //调用赋值函数 一般来说是在...
1#include<iostream>2#include<string>3usingnamespacestd;4classTest{5private:6int*m_pointer;7public:8Test(){9m_pointer =NULL;10}11Test(inti){12m_pointer =newint(i);13}14//深拷贝要完成的2件事 ① 拷贝构造函数15Test(constTest&obj){16m_pointer =newint(*obj.m_pointer);17}18//② 操作...
如果你真的需要复制语义,就进行深拷贝:提供一个虚的克隆函数,这个函数可以复制实际的派生类型并返回一个指向新对象的所有权指针,同时在派生类中返回派生类型(使用共变量返回类型) 切片问题(slicing problerm):由派生类实例向基类实例赋值时发生的信息丢失。 共变量返回类型(covariant return type):当基类的虚函数被派...