友元的作用
在a裡面加friend class b; 使得b類可以訪問a類裡面的protected和private的成員函式或成員變數因此,可以在b裡面使用a.x來訪問a類的私有成員int x; 如果沒有這句,這段**編譯不過的。
但注意一點,在a裡面宣告了這句,只能讓b類內部訪問a類的保護或私有成員,反之a類不能訪問b類保護或私有成員
const作用
const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。另外const在其他程式語言中也有出現,如c++、php5、c#.net、hc08 c。(1)可以定義const常量,具有不可變性。
例如:const int max=100; max++會產生錯誤;
(2)便於進行型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。
例如: void f(const int i) 編譯器就會知道i是乙個常量,不允許修改;
(3)可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。 同巨集定義一樣,可以做到不變則已,一變都變!
如(1)中,如果想修改max的內容,只需要:const int max=you want;即可!
(4)可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。 還是上面的例子,如果在函式體內修改了i,編譯器就會報錯;
例如: void f(const int i)
const關鍵字至少有下列n個作用:
(1)欲阻止乙個變數被改變,可以使用const關鍵字。在定義該const變數時,通常需要對它進行初始化,因為以後就沒有機會再去改變它了;
(2)對指標來說,可以指定指標本身
為const,也可以指定
指標所指
的資料為const,或二者同時指定為const;
(3)在乙個
函式宣告中,const可以修飾形參,表明它是乙個輸入引數,在
函式內部不能改變其值;
(4)對於類的成員函式,若指定其為const型別,則表明其是乙個常函式,不能修改類的成員變數;
(5)對於類的成員函式,有時候必須指定其返回值為const型別,以使得其返回值不為「左值」。例如:
const classa operator
*(const classa& a1,const classa& a2);
operator*的返回結果必須是乙個const
物件。如果不是,這樣的****也不會編譯出錯:
classa a, b, c;
(a * b) = c; // 對a*b的結果賦值
操作(a * b) = c顯然不符合程式設計者的初衷,也沒有任何意義。
C C 友元函式和友元類
友元函式和友元類 採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該函式的友元函式。除了友元函式外,還有友元類,兩...
C C 友元函式和友元類
a 友元函式 class data 友元函式是可以直接訪問類的私有成員的非成員函式。它是定義在類外的普通函式,它不屬於任何類,但需要在類的定義中加以宣告,宣告時只需在友元的名稱前加上關鍵字friend,其格式如下 friend 型別 函式名 形式引數 1.友元函式的宣告可以放在類的私有部分,也可以放...
友元(友元函式 友元類 類成員函式的友元)
friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...