C 中預設建構函式是public還是private的

2021-05-14 08:16:18 字數 1252 閱讀 6605

1樓:淚之夢幻

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

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

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

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

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

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

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

2樓:匿名使用者

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

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

3樓:匿名使用者

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

c++中型別定義中的public與 private的區別

4樓:匿名使用者

你可以這樣理解

public就是可以讓別人訪問呼叫的東西

private就是不想讓別人訪問的東西

5樓:匿名使用者

public,可以誇函式呼叫;而private,只能侷限於同函式內的其他成員呼叫與使用。

6樓:匿名使用者

class可以包含過程,函式,資料型別物件,預設private,而struct 則只有資料型別物件,預設public。

希望可以幫到你.!

7樓:匿名使用者

public 外部可以訪問

private 外部不能直接訪問

c中建構函式的作用,C 中建構函式的作用

共同點 都是例項化物件,初始化資料的 預設構造是說所有的類都從祖先object那繼承了空參的構造方法,你不寫與寫空參構造都存在,而有引數的構造一般是自己寫的,寫就有不寫就沒有,它的作用和空參的一樣,只是它裡面可以有引數,給你個例子來說明吧 有乙個類monitor它有屬性string height s...

c當建構函式失敗時建構函式內部怎麼處理

w別y雲j間 1 建構函式想通知外部自己構造失敗,只有拋異常這一個途徑 沒有返回值 2 如果不拋異常,那麼建構函式執行完畢,從語言層面上編譯器認為該物件是正確構造了的,其實構造沒有按預想的進行,所以需要用狀態變數 建構函式引用引數就可以讓外界可以知道構造失敗了。3.如果拋異常標識構造失敗,那麼,所有...

在c 中物件成員必須在含有引數的建構函式中初始化,並且在初始化成員列表中?這句話有問題吧

看你的成員變數型別和繼承方式了,公有成員變數和公有繼承,直接賦值就行了。私有成員變數,繼承之後要在初始化列表中初始化 初始化表的必要性 1 類中包含常量和引用型的成員變數。必須通過建構函式和初始化表顯式地對其進行初始化。2 在子類中顯式地構造其基類部分。class a a int n m n n p...