继承与组合的区别
继承(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++ 中的继承和组合。
扫描二维码推送至手机访问


