1樓:匿名使用者
/*因為你的基類student裡定義了建構函式,基類的預設建構函式不能呼叫。繼承類裡也就不可能使用預設建構函式了。
把你基類裡的建構函式改為有預設值的建構函式,就能解決你的問題。**如下:*/
#include "stdafx.h"
#include
#include
using namespace std;
class student
~student(){}
protected:
int num;
string name;
char ***;
};class student1:public student
student1(int a,string b,char c,int d,string e):student(a,b,c),age(d),addr(e){}
void dis_1()
private:
int age;
string addr;
};void main()
/*僅供參考!
補充:1、編譯器為類合成了預設建構函式。
2、當你自己定義了建構函式時,合成的預設建構函式將不再工作。
3、這時你可定義自己的預設建構函式來代替編譯器合成的預設建構函式。
4、為類的成員取預設值,可以對無引數的初始化式取預設值。
例如:student stud2;stud2.dis_1();stud2的各個成員將取引數裡的預設值。
如果有其他問題,請參考我文庫裡的《類的建構函式,解構函式,複製建構函式,賦值操作符》*/
2樓:未及細想
student1()需要呼叫基類student();只要在基類新增預設建構函式:
student(){}
多說一句:c 中用void main(),這可不是個很好的主意,大部分編譯器都不會支援
c++建構函式的過載問題
3樓:頑石
因為對於後者來說,當執行my_class c1語句時,c1可以呼叫my_class建立物件,也可以呼叫my_class(float x = 3.5, float y = 8.5)建立物件.
但是這會產生兩個不同的c1物件,極易發生歧義。所以系統不知道要呼叫那個建構函式產生物件,也不會允許程式這麼做。
c++建構函式過載的問題?
4樓:和小敘
你那不叫重灌,叫語法錯誤。你在定義hujiaoqi類的時候已經實現建構函式的過載了,即一專個是無參的建構函式hujiaoqi() ,一個是有參的hujiaoqi(int),類的建構函式只呼叫一次,而且不管有多少個建構函式,屬只會呼叫其中一個,並且是在定義物件的時候自動呼叫的,具體是呼叫哪個根據定義物件時傳入的引數來決定。 即你上面寫的hujiaoqi h()
5樓:匿名使用者
h(i); //過載
這裡有問題麼?
c++建構函式及其過載問題
6樓:心願
看不出來有過載 第一處劃線的只是定義了建構函式。第二處劃線的是對第一處的函式體的內容寫完整
7樓:匿名使用者
你看它不帶引數的,就說明不是你過載那個
8樓:匿名使用者
當然是第一條橫線上的
c++中過載賦值建構函式的問題!!
9樓:匿名使用者
賦值運bai算符和複製建構函式都
du是用已存zhi在的b物件來建立另dao一個物件a。不同之回處在於答
c++建構函式與符號過載問題,求指點~
10樓:幻形術
//嚴格的拷貝建構函式是這樣的,const 引用才能接受右值包括常量、const只讀量、臨時量
person(const person &p)
c 建構函式過載,C 建構函式過載的問題?
應該是object 1 10 呼叫 sum int object 2 10.5 呼叫 sum double 因為c 在呼叫函式是會自動識別資料型別,如果你把10改為10.0,也是呼叫sum double 了 主要看你的引數是什麼型別的,如果是整型就呼叫sum int 浮點型的呼叫sum double...
C 函式過載問題
void c double void c double void c double void c const double void c const double void c const double void c double const void c const double void c d...
c中建構函式與解構函式的問題,C 中建構函式與解構函式的問題
你的getname函式在 你的類定義中只有getscore和getid c 關於建構函式和解構函式呼叫次數的問題 沒問題啊。引數傳遞的時候第一次拷貝構造呼叫,在函式返回的時候賦值給c2 再次呼叫了拷貝構造。析構的話 c1 c2 c 三次 傳遞引數和返回引數各一次拷貝建構函式,所以是2次 有兩個物件c...