继承与组合的区别
继承(Inheritance)
继承是面向对象编程中的一种机制,允许一个类从另一个类继承属性和方法。下面是一个简单的例子:
#include <iostream> using namespace std; // 基类 class Animal { public: void eat() { cout << "Eating..." << endl; } }; // 派生类 class Dog : public Animal { public: void bark() { cout << "Barking..." << endl; } }; int main() { Dog myDog; myDog.eat(); // 从基类继承的方法 myDog.bark(); // 派生类自己的方法 return 0; }
在这个例子中,Dog
类继承了 Animal
类,因此 Dog
类的对象可以调用 Animal
类的方法 eat
。
组合(Composition)
组合是将一个类的对象作为另一个类的成员变量来使用。下面是一个简单的例子:
#include <iostream> using namespace std; class Engine { public: void start() { cout << "Engine started." << endl; } }; class Car { private: Engine engine; // 组合 public: void start() { engine.start(); cout << "Car started." << endl; } }; int main() { Car myCar; myCar.start(); return 0; }
在这个例子中,Car
类包含了一个 Engine
对象作为其成员变量。这种关系称为组合。Car
类通过调用 Engine
对象的方法来完成某些操作。
希望这些例子能帮助你更好地理解 C++ 中的继承和组合。
扫描二维码推送至手机访问