注册 登录
编程论坛 C++教室

我在C++之“类”这一章中有些不懂的地方,望高手点拨啊!

爱德华 发布于 2011-06-11 00:24, 578 次点击
1.一个类名称为vector,声明一个加法运算符重载时,为什么要写成vector operator +(vector &othervector)而不是直接把前面的vector去掉?
                           
                  这样一句:vector &operator +=(vector &operator),在前面怎么多了一个&(是引用符吧)?。。。说明越详细越好!谢谢啦。

2.一段代码:|*运算符*|
                  
            CString &operator=(Cstring &rString );
            CString &operator=(char *pString );
           下面这一段前面的 bool 是怎么回事,书上没有详细的说明。所以请高手们帮忙说明一下,越详细越好啊!谢谢啦。
            bool operator ==(CSrring &pString );
            bool operator ==(char *pString );
            bool operator !=(CString &rString );
            bool operator !=(char *pString );
7 回复
#2
rjsp2011-06-11 08:49
1. 习俗,习惯。你可以用int试试看
    int a=0;
    a = a+1;
    (a+=1) = 2;

2. "前面的 bool 是怎么回事,书上没有详细的说明" --- 你还是换本书吧,并把现在的书赠送给博物馆
#3
ToBeStronger2011-06-11 11:28
楼主不明白吗?前面有vector,就说明这个操作符重载函数返回的是vector,如果前面有&,说明返回的是对vector的一个引用,同理bool就表示返回一个布尔值,那四个bool,是分别对==,和!=的重载(传入的参数不一样)
#4
爱德华2011-06-11 23:57
回复 2楼 rjsp
呵呵,能推荐几本能适合我这种新手的书啊(C++),求啊!
#5
ToBeStronger2011-06-12 01:52
回复 4楼 爱德华
楼主见笑了,其实我也是初学者,我准备这个暑假研究《C++primer》,看完这个看《C++程序设计语言》
#6
乖乖承诺2011-06-12 10:08
可以结贴了。
#7
pangding2011-06-12 10:37
感觉楼主问的问题就是不知道声明函数返回值类型的语法而已。
函数的声明都是这样的:
return_type function_name ( argument_list );

重载运算符的,就是多了个关键字 operator,函数名怪了点而已。
#8
爱德华2011-06-13 01:31
回复 7楼 pangding
恩,我懂了,谢谢啦.
1