// 類作為構造函式引數時呼叫 拷貝建構函式
class clock
// 有參
clock(int a, string name)
// clock(int b, string name):a(b), name(name){}
// 拷貝構造
clock(const clock &clock)
// 析構
~clock(){}
static void show_a();
// 構造
point::point(int x, int y)
// 拷貝建構函式
point::point(const point& p)
// 析構
point::~point()
void point::displayxy()
~a()
a(const a&a)
ctime(int h=0, int m=0, int s=0):h(h),m(m),s(s){}
friend class cmydate; };
class cmydate
void display()
父類建構函式中呼叫虛函式,表現的虛函式為父類的虛函式。#includeusing namespace std;
class rectangle
~rectangle(){}
int s()
};class cuboid:public rectangle
~cuboid(){}
int height;
int v()
};int main()
靜態聯編在編譯時決定呼叫函式,動態聯編在執行時決定呼叫函式。
父類沒有宣告建構函式
(1)子類也沒有宣告自己的建構函式,則父類和子類均由編譯器生成預設的建構函式。
(2)子類中宣告了建構函式(無參或者帶參),則子類的建構函式可以寫成任何形式,不用顧忌父類的建構函式。在建立子類物件時,先呼叫父類預設的建構函式(編譯器自動生成),再呼叫子類的建構函式。
父類只宣告了無參建構函式
如果子類的建構函式沒有顯式地呼叫父類的構造,則將會呼叫父類的無參建構函式。也就是說,父類的無參建構函式將會被隱式地呼叫。
父類只宣告了帶參建構函式
在這種情況下,要特別注意。因為父類只有帶參的建構函式,所以如果子類中的建構函式沒有顯示地呼叫父類的帶參建構函式,則會報錯,所以必需顯示地呼叫。
class derived: public base ;
物件導向的補充
封裝 封裝是把物件中的成員屬性和成員方法,加上訪問修飾符,使其盡可能隱藏物件的內部細節,已達到對成員的訪問控制 是訪問的控制,而不是拒絕訪問 自己能用,別人不能用 三種訪問修飾符 public 公認的,預設 private 私有的 用於封裝,在外部不可訪問 protected 受保護的 只要在宣告成...
物件導向補充練習
練習一 class base x 1 obj base print obj.x obj.y 123 print obj.y obj.x 123 print obj.x print base.x 輸出結果 1123 1231 練習二 class foo object n1 武沛齊 def init s...
2 C 物件導向補充1
1例 2 錯誤用例 3class date 4 7正確用例 8class date 9 1 date date int y,int m,int d year y month m day d 2 1 類名 類名 const 類名 引用名 2 5.2.1.初始化時 1 date date2 date1 ...