鱼C论坛

 找回密码
 立即注册
查看: 2016|回复: 0

副本构造过程中的疑问

[复制链接]
发表于 2014-8-21 14:34:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我是小白。正在学习小甲鱼的C++快速入门。在第36讲副本构造器中有这样的一段代码:class MyClass
{
public:
       MyClass(int *p);
       ~MyClass();

       MyClass  &operator=(const  MyClass  &rhs);
       void print();
private:
       int * ptr;   //定义了指向整型的指针变量
};

MyClass::MyClass(int *p)
{
       ptr=p;
}
MyClass::~MyClass()
{
      delete ptr;
}
MyClass  &MyClass::operator=(const MyClass &rhs)
{
      if(this!=&rhs)         //请问这句比较的是ptr的值还是ptr指向的值啊?
     {
        delete ptr;
         ptr=new int;
         *ptr=*rhs.ptr;
      }
      else
     std::cout<<" 赋值号两边为相同对象,不做处理\n";
     return  *this;
}
void MyClass::print()
{
      std::cout<<*ptr<<std::endl;
}
  我个人猜测  if(this!=&rhs)  这条语句应该是比较的指针指向的值是否相同。但是又有点犹豫。因为毕竟类MyClass当中包含的属性是指针。而指针的值实际上是地址。应该比较的是地址的相同或不同。这里比较纠结。请大神相助。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 20:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表