日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++之重载操作符

發布時間:2024/9/5 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++之重载操作符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.類中重載+操作符

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Object { public:Object(){}Object(int a){num = a;}Object operator + (const Object& a) //重載+操作符;{Object result;result.num = num + a.num;return result;} private:int num; };int main(int argc, char * argv[]) {int a = 10;int b = 20;Object obja(a);Object objb(b);Object objc = obja + objb;system("pause");return 0; }

?

2.重載全局操作符

 

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Object { friend Object operator + (const Object &a, const Object &b); public:Object(){}Object(int a){num = a;}private:int num; };Object operator + (const Object &a, const Object &b) {Object result;result.num = a.num + b.num;return result; }int main(int argc, char * argv[]) {Object obja(10);Object objb(20);Object objc = obja + objb;system("pause");return 0; }

全局操作符,主要注意的是,當重載操作符訪問私有成員時,需要將操作符聲明為友元;

4. 重載[] 操作符

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Object { public:Object(){}Object(char * str){int size = strlen(str);m_buf = new char[size];strcpy(m_buf,str);}char& operator [] (int index){return m_buf[index];}~Object(){delete[] m_buf;}private:char *m_buf; };int main(int argc, char * argv[]) {Object obja("weiyouqing");char str = obja[0];obja[0] = 'W';system("pause");return 0; }

5.重載==操作符

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Object { public:Object(){}Object(int a){num = a;}bool operator == (const Object &other){if (num == other.num)return true;elsereturn false;}~Object(){}private:int num; };int main(int argc, char * argv[]) {Object obja(2);Object objb(0);if (obja == objb)cout << "equal" << endl;elsecout << "not equal" << endl;system("pause");return 0; }

全局重載操作符:

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Object {friend bool operator == (const Object &a, const Object &b); public:Object(){}Object(int a){num = a;}~Object(){}private:int num; };bool operator == (const Object &a,const Object &b) {if (a.num == b.num)return true;elsereturn false; }int main(int argc, char * argv[]) {Object obja(2);Object objb(0);if (obja == objb)cout << "equal" << endl;elsecout << "not equal" << endl;system("pause");return 0; }

?

轉載于:https://www.cnblogs.com/weiyouqing/p/9657465.html

總結

以上是生活随笔為你收集整理的C++之重载操作符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。