您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++類擴展之繼承和組合怎么應用”,在日常操作中,相信很多人在C++類擴展之繼承和組合怎么應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++類擴展之繼承和組合怎么應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
繼承:繼承父類后可以擁有父類對應的屬性和方法。
組合:將類作為成員對象,基類可以直接調用派生類對應的屬性和方法。
繼承是指在一個已有的類的基礎上,創建一個新的類并且使用原有類的功能和屬性。通過繼承,派生類可以獲得基類的全部或部分成員和方法,然后添加新的成員和方法,或者覆蓋部分原有成員和方法。
繼承方式分為公有繼承、私有繼承和保護繼承。
公有繼承:可以繼承基類的公有成員和保護成員,并且派生類對外表現為基類的類型;
私有繼承:只能繼承出基類的公有成員、保護成員、私有成員,并且派生類對外表現為自身類型;
保護繼承:可以繼承保護成員和公有成員。
下面是一個簡單的繼承示例:
class Animal { public: void eat() { cout << "Animal eat! " << endl; } }; class Dog : public Animal { public: void bark() { cout << "Dog bark! " << endl; } }; int main() { Dog dog; dog.eat(); // Animal eat! dog.bark(); // Dog bark! return 0; }
組合是指在類中嵌入對象,從而使組合類可以使用嵌入對象的全部或部分成員和方法。與繼承不同,組合是靜態的,即組合類與嵌入對象之間的關系在編譯時就已經確定,不能在運行時動態改變。
組合可以分為成員變量組合和指針組合兩種。
成員變量組合:指嵌入對象作為組合類的成員;
指針組合:指嵌入對象作為指針成員,需要在組合類的構造函數中動態分配內存。
下面是一個簡單的組合示例:
class Leg { public: void jump() { cout << "Leg jump! " << endl; } }; class Animal { public: void eat() { cout << "Animal eat! " << endl; } Leg leg; }; int main() { Animal animal; animal.eat(); animal.leg.jump(); // Leg jump! return 0; }
到此,關于“C++類擴展之繼承和組合怎么應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。