由於結構體經常用到,所以對結構體的用法做了一下整理
#includeusing namespace std;
struct node
//建構函式
//過載輸出流
friend ostream& operator<<(ostream&out,const node &p)
//過載<,成員函式
bool operator<(const node&p)const
//過載+,呼叫建構函式
friend node operator+(const node&a,const node&b)
};int main()
{ int x;
node a(1,2),b(3,4); //初始化
couta)
{cout<
其中值得注意的是對於流的過載,ostream後的&盡量加上
如果寫成這樣 ostream operator << (ostream& os, point& pt)
則:point a, b;
cout<
C 預設的建構函式以及運算子過載關鍵點
1 預設情況下編譯器為乙個類定義那些建構函式?如果我們沒有定義乙個類的預設建構函式,編譯器就會自動定義乙個函式體為空的建構函式。另外,編譯器還可以自動定義operator 賦值函式,來進行同一類的物件之間的賦值。還有,經過測試,編譯器還會自動新增 複製建構函式 2 一般情況下,我們把二元操作符定義成...
C 類與物件 拷貝建構函式以及運算子過載
本篇講述以上兩種預設函式 我們可以建立乙個物件,那麼能否再建立乙個和這個物件一模一樣的的新的物件呢?這就引入了拷貝建構函式 拷貝建構函式與之前講的建構函式一樣,函式名為類名,當用已存在的類型別的物件建立新的物件時,編譯器會自動呼叫拷貝建構函式。class a1 private int a doubl...
C 友元函式以及運算子過載
一 友元函式的作用 函式的私有和保護變數在類內可以訪問,在類外只可訪問公有變數 派生類在類內只可訪問其基類的公有變數和保護變數,在類外只可訪問其公有變數 要看具體的繼承型別 因此,在有些情況下,需要訪問類的私有或保護變數時,不得不呼叫其成員函式,因為只有成員函式才有訪問的許可權。因而多出許多時間開銷...