/******************************賦值(=)、下標(【】)、呼叫(())、成員訪問->必須使用成員函式******/
/****************************輸入輸出流必須使用全域性函式法(友元函式)實現過載**********************/
/*****************************復合賦值符、自增、自減、解引用、算數操作付、關係操作符、相等操作符、位操作符通常使用普通非成員函式*****/
/*****************************(::)(.)、(.*)、(sizeof)(?,))不能過載*****************/
//邏輯與&&和邏輯或||可以實現實現操作符過載,但是無法短路規則,所以一般不用這兩者的操作符過載
#include
#include
#include
#include
#include
using namespace std;
class sales_item
vectorivec;
};sales_item operator+(const sales_item&, const sales_item&);
bool operator==(sales_item& s1, sales_item& s2)
和14.
class checkoutrecord
; //不明白這樣定義的意義,如果不定義過載操作符照樣也可以實現輸出輸入字元啊!!!
//輸入輸出流的過載如果用成員函式實現,需要在類ostream 和istream中新增過載函式operator《和oper沒有ator>>, 而實際上我們沒有類ostream 和istream的原源**,所以過載輸入輸出流只能用友元函式來實現
//函式返回值當左值時要返回引用
ostream& operator<<(ostream&out, const checkoutrecord&s)
istream& operator>>(istream& in, checkoutrecord &s)
s.wait_list.clear();//清空容器中元素
while (in)
return in;
}class complex
int geta()
int getb()
friend complex operator- (const complex& c1, const complex& c2);
friend complex& operator++ (complex& c1);//前置++
friend complex operator++ (complex& c1,int);//後置++,引數多乙個佔位符 一定要注標點符號一定在英文狀態下
complex operator+ (const complex& c2);
complex operator--();
complex operator--(int);
int operator()(int a,int b,int c);
friend ostream& operator<<(ostream& out, const complex& c);
};complex complex::operator+ (const complex& c2)
int complex::operator()(int a, int b, int c)
complex complex::operator--()
complex complex::operator--(int)
complex& operator++ (complex& c1)
complex operator++ (complex& c1, int)
complex operator- (const complex& c1, const complex& c2)
ostream& operator<<(ostream& out, const complex& c)//全域性函式實現過載左移運算子
將函式物件應用於標準庫演算法 有點不懂????為什麼count_if每次呼叫它的形參時,會自動的呼叫類的函式呼叫符
class gt_cls
bool operator()(string& s)
private:
string::size_type bound;
};int main01()
cout << rd1;*/
/*sales_item item1(10,20);
sales_item item2(20,30);
item1.ivec.push_back(3);
cout << item1.ivec[0] << endl;
cout << item1.price << item1.unit_sold << "\n"if(item1 == item2)
cout <<1 << endl;
else
cout << 0 << endl;*/
system("pause");
cin.get();
return 0;
#include
#include
using namespace std;
int arr = ;
int main()
;std::for_each(arr, arr + 4, myfunc);*/
int a=4,b=4,c=4;
a += (a++);
printf("%d\n", a);
b += (++b);
printf("%d\n", b);
/*return 0;*/
(c++) += c;
(++c) += (c++);
system("pause");
}
C 操作符過載
1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...
C 過載操作符
過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...
c 操作符過載
過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...