C++赋值运算符重载

cString&cString::operator=(constchar*x)cString&cString::operator=(constcString&x)cStr... cString & cString::operator=(const char *x)
cString & cString::operator=(const cString &x)
cString是类名,请问将字符串传递给函数就要用*x,将类的对象传递给函数既要用&x?是为什么呢?“cString & cString。。。”中的&是指指针地址还是引用?函数主体里面是return (*this),看起来是返回指针,但是返回指针不是应该写?“cString * cString。。。”吗?
展开
 我来答
秀夜有0p
2009-02-05 · TA获得超过320个赞
知道答主
回答量:216
采纳率:0%
帮助的人:122万
展开全部
1. 字符竖握串传递给函数要用*x,是因为C++的string类对象实际上是一个指向字符串的指针变量,用*x实际上是传递字符串的首地址。不信的话你可以用
string ptr="abcdefghijklmn";//字符串内容可以任意
cout<<sizeof(ptr);
测一下ptr的大小,结果是4.
2.将类的对象传递给函数要用&x,传递的是对象的引用。也就是类对象的内存单元。
3.“ cString & cString。。。”中的&是引用,cString &是函数的返回值类型,表示返回的是cString 类对象的引脊纤野用。
4.函数主体里面的return (*this),返回的是this指向的类对象。*是间接访问运算符,表示访问this指针指向的内存单樱喊元的内容。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式