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的...