c 求operator《的例子

2021-09-28 11:29:56 字數 938 閱讀 1105

我估計是要過載流輸出運算子<<,比如cout《所以過載是應該用 友元函式 過載。如下:

#include

usingnamespacestd;

classdate

};

ostream& operator<<(ostream& out,constdate& date)

intmain()

注意上面的ostream& operator<<(ostream& out,const date& date)的3個引用&,

1. 第乙個ostream&,返回的是ostream類物件的引用,為了進行連續的運算,如cout《先進行cout《這樣就能連續寫了,cout<2. 第二個ostream& out, out是隨便取的名字,就是ostream類的物件,與cout用法一樣,通過《將資料傳到out裡,所以輸出時用cout《再次說明cout並不特殊,就是預先定義好了的ostream類的物件。

3. 第三個const date&,主要為了快速出入引數,如果不用&,將會複製乙個引數,而不是將原來的物件直接傳入,就會呼叫拷貝建構函式(如果沒寫的話編譯器自動提供),浪費時間,有時還會產生錯誤,比如資料成員裡有指標時,編譯器提供的拷貝建構函式將會自動複製 乙個指標,與原來的指標指向同乙個位址,這樣改變乙個另乙個也會改變,這是我們不想要的,我們需要拷貝時指標指向不同的位址,兩個物件互不干擾,只是指標所指變數的值相等就行,這就需要自己寫 拷貝建構函式,自己new等。  所以一般用&,加const防止意外修改。

C 過載operator的示例

include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool operator const test t1 const 比較物件...

C 過載operator的示例

以下示例中定義了乙個class test,過載了 等符號 include includeusing namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool opera...

c 中operator的運用

operator 只要是運算子都能過載 operator 關鍵字的主要作用是用來過載運算子的,還可以用於類或結構中型別的自定義轉換。下面看個例子 csharp view plain copy class feige 過載加法運算子 public static feige operator feige...