📅  最后修改于: 2023-12-03 14:39:38.688000             🧑  作者: Mango
在C++中,继承是实现面向对象编程中重要的概念之一。它允许我们定义一个类,该类具有现有类的属性和方法,同时还可以添加其他属性和方法。
类的继承定义了一个新的类,该类具有一个或多个现有类的所有特征和行为。新类被称为派生类,而现有类被称为基类。
下面是一个简单的示例,演示如何使用继承来定义两个类:
class Animal {
public:
void eat() {
cout << "I can eat." << endl;
}
};
class Dog : public Animal {
public:
void bark() {
cout << "Woof!" << endl;
}
};
在此示例中,我们定义了两个类Animal和Dog。Dog是Animal的一个派生类。Dog继承了Animal的所有特征和行为,并添加了自己的方法bark()。
现在我们可以创建一个Dog类的对象并调用它的方法:
Dog myDog;
myDog.eat();
myDog.bark();
输出将是:
I can eat.
Woof!
在C++中,我们可以控制派生类对基类成员的访问权限。通过使用public、private和protected这三个访问控制修饰符,我们可以在派生类中控制对基类成员的访问权限。
默认情况下,如果没有明确指定修饰符,C++将使用private修饰符。这意味着如果我们没有明确指定访问控制修饰符,派生类将不能直接访问基类的成员。
下面是一个示例,演示如何使用访问控制修饰符来控制派生类对基类成员的访问权限:
class Animal {
public:
void eat() {
cout << "I can eat." << endl;
}
protected:
void move() {
cout << "I can move." << endl;
}
private:
void sleep() {
cout << "I am sleeping." << endl;
}
};
class Dog : public Animal {
public:
void bark() {
move();
cout << "Woof!" << endl;
}
};
在此示例中,Animal类的成员被指定为public、protected或private。Dog类是Animal类的一个派生类,它可以访问Animal类的public和protected成员,但不能访问Animal类的private成员。
多重继承是指一个派生类同时为多个基类的子类。 C++支持多重继承,使得一个类可以具有多个父类的特征和行为。
下面是一个简单的示例,演示如何使用多重继承:
class Vehicle {
public:
void drive() {
cout << "I can drive." << endl;
}
};
class Plane {
public:
void fly() {
cout << "I can fly." << endl;
}
};
class FlyingCar : public Vehicle, public Plane {
public:
void start() {
drive();
fly();
cout << "I can start as both Vehicle and Plane." << endl;
}
};
在此示例中,我们定义了三个类,Vehicle、Plane和FlyingCar。 FlyingCar是Vehicle和Plane的子类,它同时具有Vehicle和Plane的特征和行为。FlyingCar的start()方法演示了如何使用Vehicle和Plane的方法。
现在我们可以创建一个FlyingCar对象并调用它的方法:
FlyingCar myFlyingCar;
myFlyingCar.start();
输出将是:
I can drive.
I can fly.
I can start as both Vehicle and Plane.
继承是C++编程中的重要概念之一,它允许我们定义一个类,该类具有现有类的属性和方法,同时还可以添加其他属性和方法。在C ++中使用访问控制修饰符,我们可以控制派生类对基类成员的访问权限。C++还支持多重继承,使得一个类可以具有多个父类的特征和行为。