作者Kagamie (Kagamie)
看板C_and_CPP
標題[問題] c++ 繼承問題
時間Fri May 3 14:55:23 2013
class Point2D{
public:
Point2D(int,int);
private:
int x,y;
};
class Point3D:public Point2D{
public:
Point3D(int,int,int);
private:
int z;
};
Point3D::Point3D(int a=0,int b=0,int c=0):Point2D(a,b),z(c){
}
與
Point3D::Point3D(int a=0,int b=0,int c=0):z(c){
Point2D(a,b);
}
所產生的結果似乎不太一樣
我想了解一下上下兩種的含意!
thx!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.75.235.127
→ azureblaze:第二個的xy是預設值(垃圾),然後再另外做個Point2D 05/03 15:03
→ azureblaze:馬上把這個Point2D丟掉。 05/03 15:03
→ azureblaze:不過第二個應該根本就不能compile,因為沒有預設的 05/03 15:05
→ azureblaze:Point2D() 05/03 15:05
→ diabloevagto:你不能直接自行呼叫建構子 05/03 15:38
→ diabloevagto:我搞錯了= =請忽略 05/03 15:44
→ diabloevagto:你第二個因為你有自行宣告建構子,所以不會有 05/03 15:44
→ diabloevagto:預設的Point2D(void),你要自己補上去 05/03 15:45