C++繼承是面向對象編程的重要特性之一,它允許創(chuàng )建一個(gè)新類(lèi)(派生類(lèi))從已有的類(lèi)(基類(lèi))中繼承屬性和方法,在C++中,主要有以下三種繼承方??式:公有繼承、保護繼??承和私有繼承,本文將詳細介紹這三種繼承方式的特點(diǎn)及使用方法??。
公有繼承是最簡(jiǎn)單的繼承方式,它表示基類(lèi)的公有成員和保護成員在派生類(lèi)中保持原┐(′?`)┌有的訪(fǎng)問(wèn)權限,基類(lèi)的私有成員在派生類(lèi)中不可訪(fǎng)問(wèn),公有繼承使用關(guān)鍵字public來(lái)表示。
class Base { public: int x;protected: int y;private: int z;};c??lass Derived : public Base { public: void print() { cout << "x = " <??< x << ", y = " << y << ", z = " <<(T_T);(′?`*) z << endl; }};2、保護繼承(protected inheritance)
保護繼承表示基類(lèi)的公有成員和保護成員在派生類(lèi)中變(′?`*)為保?護成員,而基類(lèi)的私有成員在派(′?_?`)生類(lèi)中不可訪(fǎng)問(wèn),保護繼承使用關(guān)鍵字protected來(lái)表示。
class Base { public: int x;protected: int y;private: int z;};class Derived : protected Base { public: void print() { cout << &q??uot;x = " << x <??< ", y = " << y << ", z = &quo??t; << z <&l(′?ω?`)t; endl; }};3、私有繼承(private inheritance)
私有繼承表示基類(lèi)的所有成員在派生類(lèi)中都變?yōu)樗接谐蓡T,不可在派生類(lèi)(′ω`*)外部訪(fǎng)問(wèn),私有(O_O)繼承使用關(guān)鍵字private來(lái)表示,需要注意的是,一個(gè)類(lèi)只能使用一次私有繼承。
class Base { public: int x;protected: int y;pri??vate: int z;};class Derived1 : private Base { // 錯誤,一個(gè)類(lèi)只能使用一次私有繼承pub(′?`*)lic: void print() { cout << "x = " << x << "ヽ(′ー`)ノ, y = " << y << &quoヾ(′ω`)?t;, z = " << z << endl; }};1、如何實(shí)現多級繼承?
答:C++支持多級繼承,可以通過(guò)連續使用多個(gè)冒號:來(lái)實(shí)現。
class Grandparent { /* ... */ };class Paren??t : protected Grandparent { /* ... */ };class Chil(╯‵□′)╯d : public Parent { /* ... */ };