C建構函式的過載問題,C建構函式和析構函式可以過載嗎

2021-03-04 06:12:57 字數 1159 閱讀 8922

1樓:頑石

因為對於後者來說,當執行my_class c1語句時,c1可以呼叫my_class建立物件,也可以呼叫my_class(float x = 3.5, float y = 8.5)建立物件.

但是這會產生兩個不同的c1物件,極易發生歧義。所以系統不知道要呼叫那個建構函式產生物件,也不會允許程式這麼做。

c++ 建構函式和析構函式可以過載嗎

2樓:匿名使用者

建構函式可以被過載,因為建構函式可以有多個且可以帶引數。

析構函式不可以被過載,因為析構函式只能有乙個,且不能帶引數。

c++建構函式及其過載問題

3樓:心願

看不出來有過載 第一處劃線的只是定義了建構函式。第二處劃線的是對第一處的函式體的內容寫完整

4樓:匿名使用者

你看它不帶引數的,就說明不是你過載那個

5樓:匿名使用者

當然是第一條橫線上的

c++建構函式為什麼要進行過載

6樓:匿名使用者

// 字串類string

class string

string s("b"); "b"

string s2(s); // "b"

string s3('a', 5); // "aaaaa"

7樓:匿名使用者

過載體現的是c++多型。動態繫結的。就是執行時才體現呼叫那個函式。例子見樓下

c++建構函式的過載問題

8樓:匿名使用者

預設建構函式(無引數)有2個所以報錯。引數名後加=代表預設值。point(1,1)等價於point(1,1,0), point(1)等價於point(1,0,0),而point pb;這句語句既可以呼叫point(0,0,0)又可以呼叫point(),無法確定呼叫哪個函式,所以報錯。

你可以僅把nh=0的=0去掉(另外兩個不需要改),或者把point()去掉就不會報錯了。

9樓:添命

支援樓上,兩個mm在面前,怎麼選擇

C中過載賦值建構函式的問題,C複製建構函式和號過載問題

賦值運bai算符和複製建構函式都 du是用已存zhi在的b物件來建立另dao乙個物件a。不同之回處在於答 c 複製建構函式和 號過載問題 表述基本上沒有問bai題。從功能上來du說,建構函式是用於建立zhi物件的dao,operator其實是可以看成普通內的成員函式,只不容 過是以符號的形式代替文字...

C中的建構函式

建構函式就是定義乙個類的物件是,用來初始化的 在建構函式中不要對類的示例做初始化以外的事情.不要嘗試顯式的呼叫建構函式,也就是直接去呼叫 這句話就是說,建構函式本身,不需要我們自己去呼叫。例如 class a public a int w public a int w,int y,int z 以上類...

C 物件賦值呼叫預設賦值建構函式

呵呵,一般c 的書上都會介紹的基礎知識。建構函式有這麼幾種 我以類名為a的類來說說吧 1.預設建構函式,新建a的物件時預設呼叫 如果沒有其他符合的建構函式的話 2.拷貝建構函式,用a的乙個物件來對另乙個a類物件進行初始化 4.賦值函式,用於a物件間的賦值操作 5.其他建構函式,自己定義。以上1 3的...