C++继承机制下的构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++继承机制下的构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
派生類同樣有構造函數。當我們創建一個派生類對象的時候,基類構造函數將會被自動調用,用于初始化派生類從基類中繼承過來的成員變量。而派生類中新增的成員變量則需要重新定義構造函數用于初始化了。
#include<iostream> using namespace std;class book { public:book();book(char* a, double p = 5.0);void setprice(double a);double getprice()const;void settitle(char* a);char * gettitle()const;void display(); private:double price;char * title; };class book_derived :public book { public:book_derived(){cout<<"book_derived 構造函數"<<endl;}void display(); };book::book(char* a, double p) {title = a;price = p; }book::book() {cout<<"book 構造函數"<<endl;title = "NoTitle";price = 0.0; }void book::setprice(double a) {price = a; }double book::getprice()const {return price; }void book::settitle(char* a) {title = a; }char * book::gettitle()const {return title; }void book::display() {cout<<"book The price of "<<title<<" is $"<<price<<endl; }void book_derived::display() {cout<<"book_derived The price of "<<gettitle()<<" is $"<<getprice()<<endl; }int main() {book_derived b;b.display();return 0; } 運行結果: book 構造函數 book_derived 構造函數 book_derived The price of NoTitle is $0創建對象時先是執行基類的構造函數,然后再是執行派生類構造函數。構造函數執行順序是按照繼承順序自頂向下執行。
?
總結
以上是生活随笔為你收集整理的C++继承机制下的构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++名字隐藏
- 下一篇: C++派生类构造函数调用规则