c++初学者求助

来源:百度知道 编辑:UC知道 时间:2024/09/22 17:28:10
在学c++编程的时候遇到这个类:
class CString
{
private:
char m_aString[1024];
public:
CString(void);
CString(CString &rString);
CString(char *pString);

~CString(void);

CString & operator=(CString &rString);
CString & operator=(char *pString);//问题就在这里了!
bool operator ==(CString &rString);
bool operator ==(char *pString);
bool operator !=(CString &rString);
bool operator !=(char *pString);

char *GetString(void);
int GetLength(void);
};
请帮忙解释一下这个语句?
大概是我没有说清楚,我的意思是语句CString & operator=(CString &rString); 这里面的“&”符号怎么解释?特别是前面那个?而具体函数是这样的
CString &CString::operator=(CString &rString)
{
if(rString.GetLength()>0)
{
strcpy(m_aString,rString.GetString());
}
else
{
m_aString[0]='\0';
}
return *this;//应该返回的是引用,但这

首先给你解释一下”this",他是个指针,每一个类都会有这样的一个指针的,他用不找你定义,属于类自带的
CString & operator=(CString &rString),这个是对”=”的重载,你知道的,变量要是整数的时候,可以直接赋值,比如”r=0”,但是字符串就不行了,也就是说”s="abcd"是不对.我们为了方便,所以就对"="进行了重载,这样你就可以把一个字符串赋给一个字符串变量了.
至于你说的"&",其实可以不用的,也 就是说"CString & operator=(CString rString); "这样 也是可以的
它的作用是起一个别名的作用
哎,不知道你有没有看懂我的话,累了,不说了

重载操作符=,右操作数为字符指针类型。