指针型属性的类对象的赋值
在创建一个新对象之后,一般可以通过将已有的对象赋值给新对象已完成对象的初始化;
如:
Computer newcom; newcom = oldcom;
如果类没有显示的定义类赋值操作符,一般编译器会为类生成一个默认的赋值操作符,以内存拷贝的形式完成赋值操作,但无法拷贝指针所指向的内存,所以需要自己单独对赋值操作符进行自定义。
class Computer { public: Computer& operator = (const Computer& com) { if(this ==&com) return *this; m_strModel=com.m_strModel; m_pKeyboard=new Keyboard(*(com.GetKeyboard)); } };其中 this 指针指向的是类对象自己的地址。*this 就是指的类对象自身。
new Keyboard(*(com.GetKeyboard())就是生成一个新的Keyboard对象,该对象以com的keyboard的地址为副本。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。