建構函式 解構函式 友元函式 設成 private 和 public 有什麼區別

2025-07-18 04:45:18 字數 1421 閱讀 9212

1樓:網友

public 公有成員,表示所有模組的所有其它過程都可訪問這個成員。

類似共享資源]

private 私有成員,表示只碰圓在其類的塊中,唯有友元才可以訪問,屬私笑賀塌有物件。其他地方均不可以訪問。

類似鎖起來的東西,只有自己家裡的人[類成員]或者是有鑰匙的人[友元]才可以訪問。]

protected 半私有成員,表示只在其類的塊中,或者是派生類中,友元 才能訪問。

friend 友元,設定成友元拍枝的情況下下,可以不受public跟private的約束,可以進行私有成員的訪問。

2樓:保持距離

public 表示所有模組的所有其它過程都可訪問這個過程/函式。如果是在包含 option private 的坦襪模組中使用,則這個函式在該工程外是不可使用的。

private 表示唯慎只有包含其宣告的模組的其它過程可以訪問該過程/函式。

friend 只能在類模組中使用。表示該過程/函式在整個工程中都是可見的,但對於物件例項的控指信敬制者是不可見的。

c++中預設建構函式是public還是private的?

3樓:淚之夢幻

建構函式一律都是公有成員。系統在構造物件的時候會呼叫建構函式的,如果是私有成員的話,就無權訪問了。如果將建構函式寫在private關鍵字後面,那麼編譯時會報錯的。

建構函式 ,是一種特殊的方法。主要用來在建立物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。特別的乙個類可以有多個建構函式 ,可根據其引數個數的不同或引數型別的不同來區分它們 即建構函式的過載。

c++語言為類提供的建構函式可自動完成物件的初始化任務,全域性物件和靜態物件的建構函式在main()函式執行之前就被呼叫,區域性靜態物件的建構函式是當程式第一次執行到相應語句時才被呼叫。然而給出乙個外部物件的引用性宣告時,並不呼叫相應的建構函式,因為這個外部物件只是引用在其他地方宣告的物件,並沒有真正地建立乙個物件。

如果乙個類中沒有定義任何的建構函式,那麼編譯器只有在以下三種情況,才會提供預設的建構函式:

1、如果類有虛擬成員函式或者虛擬繼承父類(即有虛擬基類)時;

2、如果類的基類有建構函式(可以是使用者定義的建構函式,或編譯器提供的預設建構函式);

3、在類中的所有非靜態的物件資料成員,它們對應的類中有建構函式(可以是使用者定義的建構函式,或編譯器提供的預設建構函式)。

4樓:網友

建構函式一律都是公有成員;建構函式不是不能被呼叫,而是不能被使用者呼叫。系統在構造物件的時候會呼叫建構函式的。如果是私有成員的話,就無權訪問了。

所以你可以試試,如果將建構函式寫在private關鍵字後面,那麼編譯時會報錯的。

5樓:網友

公有的,建構函式主要是用於初始化類的成員變數。

c 什麼是虛擬函式,構造與解構函式可以是虛擬函式嗎

虛擬函式用於實現類的繼承所體現的多型性,當一個類的成員函式被宣告為虛的,那麼這個類的派生類如果過載了這個函式,那麼在呼叫這個函式時,會先確認這個類例項是原來的類還是派生類 因為父類的指標可以指向子類 如果是父類,那麼呼叫父類的版本,如果是子類,則呼叫對應的子類的版本。class a class b ...

c 關於解構函式的問題,C 關於解構函式的一個問題

如果你的物件在複製的時候不適合淺複製,而且整個過程中你也不需要對它進行復制,那麼一個比較好的方法就是寫一個複製建構函式 mystring const mystring 然後不實現。沒錯就是隻寫這麼一個宣告放那邊。如果程式中用到了複製構造,那麼連結的時候就會報錯,可以幫助你遠離深複製淺複製的問題。另 ...

友元函式是全域性函式麼,C 成員函式 全域性函式 友員函式的區別

我這學期學了c 對友元和友元函式有一點認識,提供以下內容,僅供參考。1 友元的來歷 根據類的封裝性,一般將資料成員宣告為私有成員,在外部不能直接訪問它,只能通過類的公有成員函式對私有成員進行訪問。有時,需要頻繁呼叫成員函式來訪問私有成員,這樣系統開銷就比較大。c 從高效的角度出發,提供了友元機制,使...