單目加減法±±的過載
#include
#include
using
namespace std;
class
a27;
a27 operator++(
) a27 operator++(
int)};
intmain()
//3//2
//3//3
雙目運算子±*/的過載:
class
a27;
a27 operator
+(a27 &a)
a27 operator
-(a27 &a)
a27 operator
*(a27 &a)
a27 operator
/(a27 &a)};
intmain()
//6//8
//-2
//0
過載關係運算子:(同理,小於號、邏輯等於號也可以這樣處理)
class
a27;
bool
operator
>
(const a27& a)
else}}
;int
main()
//1 (bool為真)
賦值運算子「=」號過載
class
a27;
void
operator=(
const a27 &a)};
intmain()
// 2
()過載(即使得類直接可以被呼叫)
class
a27;
a27 operator()
(int a,
int b,
int c)};
intmain()
//2//8
運算子過載
class
a27}
;int
operator
(int i)
else}}
;int
main()
// 2
輸入輸出過載
class
a27}
;a27
(int a)
;friend ostream &
operator
<<
( ostream &output,
const a27 &a )
friend istream &
operator
>>
( istream &input, a27 &a )};
intmain()
//0//>>1
//1
過載輸入輸出是友元方式實現的,下面再講講友元:
6. 友元函式:友元並不是成員函式,以關鍵字friend進行區分,它可以訪問類中的私有成員。其破壞了封裝和引用,但是方便了開發,下面是乙個友元的例子:
class
point
friend
float
dist
(point &a, point &b)
;private
:int a;
int b;};
float
dist
(point &a, point &b)
;int
main()
//5
可見,友元函式可以取得類中私有變數並進行運算。
友元可以定義在內部,也可以定義在類體外部。無論定義在內部還是外部,都是直接調用友元函式名,不需要加"類."。
7. 友元類:友元類可以訪問另乙個類的似有變數,但另乙個類不能訪問友元類:
classa;
class
bvoid
printx()
};intmain()
需要在被訪問的類中宣告友元類的名字。
總結一下,這篇筆記講了c++的各種過載(還有->成員訪問過載沒講)以及友元;之後如果有機會,繼續講講c++的多執行緒、多程序、web套接字程式設計、vector(講了vector之後,才能講->過載)等等。希望能幫到大家;看完了01和02兩篇筆記,應付c++期末考基本是沒問題的了~
有錯誤、問題歡迎向我反映討論~[email protected]
C 日期類 cout 過載 友元
日期類c 實現 類的主要內容 1.成員變數 年 year,月month,日day 2.友元,過載實現本類的輸出列印 3.isvalid 在建構函式中判斷日期是否有效 4.在日期上往前往後新增一定的天數 5.計算兩短日期的差值 類定義 date.h ifndef date h define date ...
c 筆記7 友元函式及友元類
一 友元 作用 提高了程式的執行效率 減小了型別的檢查和安全性檢查所需的時間開銷,以及避免通過成員函式訪問私有成員變數壓棧出棧等操作 但破壞了類的封裝特性,使得非成員函式可以訪問類的私有成員。格式如下 friend 型別 函式名 形式引數 二 友元函式 友元函式是可以直接訪問類的私有成員的非成員函式...
C 友元函式 友元類
友元函式和友元類 採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該函式的友元函式。除了友元函式外,還有友元類,兩...