牛骨文教育服务平台(让学习变的简单)
博文笔记

指针型属性的类对象的赋值

创建时间:2012-09-12 投稿人: 浏览次数:125

在创建一个新对象之后,一般可以通过将已有的对象赋值给新对象已完成对象的初始化;

如:

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的地址为副本。


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。