C 物件導向補充

2021-10-24 16:28:02 字數 1408 閱讀 5960

// 類作為構造函式引數時呼叫 拷貝建構函式

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