一文搞懂C++中继承的概念与使用
1. 继承的概念
继承是指在定义一个类时,可以在新的类中直接引用一个已有的父类的属性和行为,新的类称为子类或派生类,已有的类称为父类或基类。
子类会继承父类的公有成员和保护成员,但不会继承父类的私有成员。同时子类可以访问父类的公有成员和保护成员,但无法访问私有成员。
2. 继承的语法
继承语法如下所示:
class ChildClass : public ParentClass
{
// ...
};
说明:
ChildClass
为子类,ParentClass
为父类。public
表示继承的类型,可以是public
、protected
或private
。:
表示继承关系。
其中,public
继承表示父类的公有成员和保护成员可以被子类继承,并且变成子类的公有成员和保护成员,而父类的私有成员仍然无法被子类访问。
3. 实现继承的示例
以下是一个简单的继承示例:
#include <iostream>
using namespace std;
// 父类
class Animal {
public:
void eat() {
cout << "Animal eat." << endl;
}
};
// 子类
class Cat : public Animal {
public:
void meow() {
cout << "Cat meow." << endl;
}
};
int main() {
Cat c;
c.eat(); // 调用继承自父类的方法
c.meow(); // 调用子类自己的方法
return 0;
}
输出结果为:
Animal eat.
Cat meow.
在上面的代码中,我们定义了一个 Animal
类,然后定义了一个 Cat
类,并通过 public
继承方式将 Animal
类作为 Cat
类的父类。这样,Cat
类就可以直接使用 Animal
类中定义的方法了。
4. 多重继承的示例
C++中还支持多重继承,一个子类可以同时从多个父类中继承。以下是一个多重继承的示例:
#include <iostream>
using namespace std;
// 父类
class Car {
public:
void run() {
cout << "Car is running." << endl;
}
};
// 父类
class Plane {
public:
void fly() {
cout << "Plane is flying." << endl;
}
};
// 子类
class FlyingCar : public Car, public Plane {
public:
void flyAndRun() {
fly(); // 调用父类Plane中的方法
run(); // 调用父类Car中的方法
}
};
int main() {
FlyingCar fc;
fc.flyAndRun();
return 0;
}
输出结果为:
Plane is flying.
Car is running.
在上面的代码中,我们定义了两个父类 Car
和 Plane
,然后定义了一个子类 FlyingCar
,通过 public 多重继承方式同时继承了 Car
和 Plane
两个类。这样,在子类中我们就可以同时使用两个父类中定义的方法了。
5. 总结
继承是C++中面向对象编程的一个重要特性,它可以简化代码,提高代码的复用性。在定义子类时,我们可以通过继承的方式直接使用父类中定义的方法和属性。需要注意的是,子类不会继承父类中的私有成员,同时也要注意继承的方式,可以是public、protected或private继承。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文搞懂C++中继承的概念与使用 - Python技术站