C++ PRIMER 一个问题

[复制链接]
查看11 | 回复1 | 2008-6-29 13:36:18 | 显示全部楼层 |阅读模式
第三版 3章的类上降到THIS指针然后说了 对象间的拷贝 最常犯得错误是‘忘了测试这两个类对象是否确实是同一个对象’
对这句话 我不能理解 请问这里“同一个对象”的对象 是什么意思?
问题是后来他书上做的代码上 我看的意思是 如果右值和左值不同 那么就停止拷贝 如果相同 就拷贝这不是违反意思了吗?
他后面的代码:
if(this!=&rhs)
//RHS这里是重载的赋值操作符的参数
{
delete [] _string;
_size=rhs.size;
if(!rhs._string)
_string=0;
else
{
_string =new char[_size+1];
strcpy(_string,rhs._string);
}
}
return *this;
}

回复

使用道具 举报

千问 | 2008-6-29 13:36:18 | 显示全部楼层
这个对象就和平常所说的普通类型的变量可以看成一样的(虽然有区别);比昂说: int i=1;这里的int是类型,可以等同与类中的class关键字;而i呢,可以说是“int的对象”,记住:编程语言中的对象就是一种类型的实例。对于类中对象中拷贝,有个特殊之处就是,对象一般都较大点(当然也有小的),它们的拷贝可能占用很大内存和时间,所以一般都要用个测试是否是本身的拷贝。这个就相当于测试如下代码:i=i;把i的值赋值给i;当然这个内置类型的i占用的空间很小,可以不这么考虑。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行