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。。。”吗? 展开
cString & cString::operator=(const cString &x)
cString是类名,请问将字符串传递给函数就要用*x,将类的对象传递给函数既要用&x?是为什么呢?“cString & cString。。。”中的&是指指针地址还是引用?函数主体里面是return (*this),看起来是返回指针,但是返回指针不是应该写?“cString * cString。。。”吗? 展开
1个回答
展开全部
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指针指向的内存单樱喊元的内容。
string ptr="abcdefghijklmn";//字符串内容可以任意
cout<<sizeof(ptr);
测一下ptr的大小,结果是4.
2.将类的对象传递给函数要用&x,传递的是对象的引用。也就是类对象的内存单元。
3.“ cString & cString。。。”中的&是引用,cString &是函数的返回值类型,表示返回的是cString 类对象的引脊纤野用。
4.函数主体里面的return (*this),返回的是this指向的类对象。*是间接访问运算符,表示访问this指针指向的内存单樱喊元的内容。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询