1樓:孟儂
1 和類名相同
2 沒有返回值型別宣告
還有除了以上說的倆點,還要注意:
二.建構函式的定義
建構函式的名字不能隨便起,必須讓編譯器認得出才可以被自動執行。它的命名方法既簡單又合理:讓建構函式與類同名。
除了名字外,建構函式的另一個特別之處是沒有返回值型別,這與返回值型別為void的函式不同。如果它有返回值型別,那麼編譯器將不知所措。在你可以訪問一個類的方法、屬性或任何其它東西之前, 第一條執行的語句是包含有相應類的建構函式。
甚至你自己不寫一個建構函式,也會有一個預設建構函式提供給你。
class testclass
// 由clr提供
} 下面列舉了幾種型別的建構函式
1)預設建構函式
class testclass
希望可以幫上你的忙哦
2樓:糖糖寳寳
建構函式 ,是一種特殊的方法,主要用來在建立物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中,特別的一個類可以有多個建構函式 ,可根據其引數個數的不同或引數型別的不同來區分它們 即建構函式的過載。
如果一個類中沒有定義任何的建構函式,那麼編譯器只有在以下三種情況,才會提供預設的建構函式:
1、如果類有虛擬成員函式或者虛擬繼承父類(即有虛擬基類)時;
2、如果類的基類有建構函式(可以是使用者定義的建構函式,或編譯器提供的預設建構函式);
3、在類中的所有非靜態的物件資料成員,它們對應的類中有建構函式(可以是使用者定義的建構函式,或編譯器提供的預設建構函式)。
3樓:不ke愛
倆特點..
1 和類名相同
2 沒有返回值型別宣告
請問c++中一個建構函式後面加個冒號是什麼意思
4樓:匿名使用者
a(b)實際上是做的是用b初始copy化a的成員x;既x=b;
:是初bai始化列表方式,建議你看看相du關章節再來理解.
b1(int a=0,int b=0):a(b) //就是zhi這句其實可以dao寫成:
b1(int a=0,int b=0):a(b),y1(a){}這就是初始化列表方式,你要是這都沒弄懂,就到繼承了,那肯定更不好理解!
5樓:端武者
初始化列表,跟在{}裡面的初始化沒有什麼不同,但在非靜態const型別以及引用型成員變數必須在初始化列表裡面初始化,不能在{}裡面初始化.a(b)就是用父類的建構函式進行一部分初始化.
6樓:兜裡有兩塊糖
當類繼承的時候,其實是沒有繼承類的建構函式的,所以在對派生類中必須對基類進行初始化,而這個初始化必須是以初始化列表的形式初始化。
7樓:匿名使用者
表示類之間的繼承關係,即 class b1 繼承了class a 的所有成員和操作函式
c++建構函式後面加冒號是什麼意思?後面應該加什麼內容呢?是賦初值嗎?
8樓:匿名使用者
冒號後面跟的是賦值,這種寫法是c++的特性。
a( int aa, int bb ):a(aa),b(bb)
相當於a( int aa, int bb )
c++ 建構函式前面加個~表示啥
9樓:我家的夏爾
解構函式:
當一個類的物件離開作用域時,解構函式將被呼叫(系統自動呼叫)。解構函式的名字和類名一樣,不過要在前面加上 ~ 。對一個類來說,只能允許一個解構函式,解構函式不能有引數,並且也沒有返回值。
解構函式的作用是完成一個清理工作,如釋放從堆中分配的記憶體。
一個類中可以有多個建構函式,但解構函式只能有一個。物件被析構的順序,與其建立時的順序相反,即後構造的物件先析構。
10樓:
第一個建構函式
第二個解構函式
c++為什麼一定要定義無參建構函式?是用來做什麼的?
11樓:育知同創教育
c++中無參構造來函式的作用:
該類物件源被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式->由建構函式完成成員的初始化工作。
故:建構函式的作用:初始化物件的資料成員。
舉例:class counter
private:
// 資料成員
int m_value;
}counter()是一個無參建構函式,就是為了初始化m_value的。
12樓:匿名使用者
可以不用定義啊。
只要有一個構
造函式就可以,甚至建構函式都可以是私回
有的。類定義必答須要提供建構函式,作用是對類初始化,這個是建構函式的作用,建議好好理解一下。
單例模式中,建構函式是私有的,**如下:
class csingleton
static csingleton *m_pinstance;
public:
static csingleton * getinstance()};
13樓:阡陌她人只為你
並不是一定要定義,主要防止你重新定義了有參建構函式,定義了物件卻沒有初始化。。。
14樓:匿名使用者
沒有這個要求,可以不定義的
在c++類中,定義建構函式的目的是什麼
15樓:糖糖寳寳
建構函式通常用於在例項化物件時自動對內部資料成員初始化,設定初始值、分配記憶體空間等。
而解構函式則用於刪除物件時做收尾工作,比如釋放申請的空間等。
要建立一個物件,就得呼叫建構函式。
要銷燬一個物件,就會被迫的呼叫解構函式。
如果成員函式宣告稱static,不建立物件也能呼叫 靜態成員函式。
16樓:匿名使用者
根據你的需要來自定義建構函式。
c++規定,每一個類必須有一個建構函式。如果在class中沒有定義建構函式,編譯器會自動構建。當然編譯器定義的函式不會執行任何事件。
如果需要在class建立時執行一些時間,就可自定義class的建構函式。
c++類的呼叫:
c++類的呼叫:
17樓:匿名使用者
讓我來告訴你答案!用來在建立物件時初始化物件
18樓:匿名使用者
簡單來說,就是初始化類中資源,使得在使用時有正確的值可用。另外就是做一些準備工作
19樓:匿名使用者
沒多大用,虛擬機器會預設為你加一個沒有引數的構造方法!
20樓:匿名使用者
用來在建立物件時初始化物件
21樓:
初始化物件啊,給物件賦初始值等
22樓:豆綠夏袁麗
可以在類外定義的。實際寫較大一些的程式一般是這樣做的:建立一個標頭檔案,裡面是類的定義,一些常量和變數的定義,然後再對應的cpp檔案中進行實現。
c 類中的建構函式 point int x,int y x x ,y y其中x和y已被宣告
建構函式的引數不要和類成員一樣。起碼寫成point int x t,int y y x x t y y t 這段 的意思是初始化x x,y y c 中point int x,int y x x y y 是什麼意思 建構函式冒號後頭那個叫初始化列表,用於初始化類的成員屬性,這裡相當於內 point i...
c中的建構函式前加上eplicit有什麼用
c 提供了關鍵字explicit,可以阻止不應該允許的經過轉換建構函式進行的隱式轉換的發生。宣告為explicit的建構函式不能在隱式轉換中使用。c 中,一個引數的建構函式,承擔了兩個角色。1 是個構造器 2 是個預設且隱含的型別轉換操作符。所以,有時候在我們寫下如 aaa 這樣的 且恰好 的型別正...
C中如何呼叫靜態類中的建構函式
靜態建構函式既沒有訪問修飾符,也沒有引數。如果沒有編寫靜態建構函式,而這時類中包含帶有初始值設定的靜態欄位,那麼編譯器會自動生成預設的靜態建構函式。在建立第一個類例項或任何靜態成員被引用時,net將自動呼叫靜態建構函式來初始化類,也就是說我們無法直接呼叫靜態建構函式,也就無法控制什麼時候執行靜態建構...