c++中有個friend關鍵字,它能讓被修飾的物件衝破本class的封裝特性,從而能夠訪問本class的私有物件。
簡單來講,就是:
#include
using
namespace std;
classa~
a()friend
intfunc
(a a)
;// 向c++表示,int func(a a)是我的朋友,所以它可以使用我的所有東西。
friend
classb;
// 向c++表示,class b是我的朋友,所以它可以使用我的所有東西。
private
:int password;
int birthday;};
intfunc
(a a)
classb~
b()// 因為在a類中已經宣告了b類是它的朋友,所以b類中方法就可以訪問a類的私有變數了
void
show
(a a)
private:}
;int
main()
利用這一點,我們就可以過載<< 或者 >>操作,
#include
using
namespace std;
classa~
a()friend ostream&
operator
<<
(ostream &os , a a)
;private
:int password;
int account;};
ostream&
operator
<<
(ostream &os , a a)
intmain()
結果:
C 學習筆記 explicit關鍵字
c 中的explicit 關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面所示 class mycla...
C 學習筆記 explicit關鍵字
explicit關鍵字用於宣告必須使用強制轉換來呼叫的使用者定義的型別轉換運算子。例如,在下面的示例中,此運算子將名為 fahrenheit 的類轉換為名為 celsius 的類 must be defined inside a class called farenheit public stati...
C 學習筆記 base關鍵字
base關鍵字用於從派生類中訪問基類的成員 基類訪問只能在建構函式 例項方法或例項屬性訪問器中進行。從靜態方法中使用base關鍵字是錯誤的。在本例中,基類 person 和派生類 employee 都有乙個名為 getinfo 的方法。通過使用base關鍵字,可以從派生類中呼叫基類的 getinfo...