条款09:不要在构造和析构过程中调用虚函数
子类的构造函数调用父类的虚函数,不再有虚函数特性,此时子类的虚函数还没有实现无法调用。
//class B : public A
ClassB *pB = new ClassB; // new的对象是哪个类,就调用哪里的virtual
int nValue = pB->GetVlaue();
实现copy构造函数
class aString
{
private:
char* m_data;
public:
aString(const aString &other)//拷贝构造函数,功能与构造函数类似。
{
int length=strlen(other.m_data);
m_data=new char[length+1];//还需判断m_data空间是否够用,other和m_data是否指向相同地址。
strcpy(m_data,other.m_data);
}
~aString()
{
delete m_data;
};
};