在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、C++中重载运算符函数的方式: 以重载‘-’号为例,自定义为乘法。 第一种是直接在类内声明定义:(返回值是本类的对象) #include <iostream> using namespace std; class test { public: test() {} test(int t1) { item = t1; } test operator-(test &t2) { this->item = this->item*t2.item; return *this; } void show() { cout << this->item; } private: int item; }; int main() { test t1(10); test t2(20); test t3 = t1 - t2; t3.show(); system("pause"); return 0; } 第二种是在类中声明为友元函数,类外定义,返回值的是一个类的对象。(一般为了能在类外直接调用成员而不用通过成员函数间接调用成员数据)
#include <iostream> using namespace std; class test { public: test() {} test(int t1) { item = t1; } void show() { cout << this->item; } friend test operator-(test &t1, test &t2); private: int item; }; test operator-(test &t1, test &t2) { test t; t.item = t1.item*t2.item; return t; } int main() { test t1(10); test t2(20); test t3 = t1 - t2; t3.show(); system("pause"); return 0; }
二、C++中操作符重载函数 操作符重载函数中的重载左移操作符,其函数定义不建议写在类中,因为cout<<test,左边是ofstream对象,如果放到类中定义,其调用是test.operator<<, 变成test<<cout 右移操作符大同小异 #include <iostream> using namespace std; class test { public: test(){} test(int t){ temp=t; } void show() { cout<<temp; } friend ostream& operator<<(ostream &os,test &t1); //为了能直接调用类的数据成员,声明为友元函数 private: int temp; }; ostream& operator<<(ostream &os,test &t1) //<<操作符重载函数只写在全局, { os<<t1.temp<<endl; return os; } int main() { test t1(10); cout<<t1; system("pause"); return 0; } 注!操作符重载函数返回引用目的是为了能够连续赋值。如:cout<<a<<b<<c<<endl; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论