继承是C++面向对象编程中非常重要的一个特性,它可以让子类继承父类的数据和方法。本文将通过示例代码介绍C++继承的相关用法。
一、继承的基本语法
使用冒号”: “表示一个类继承自另一个类:
class Father {
// ...
};
class Son : public Father {
// ...
};
Son继承了Father,得到了Father的所有非私有成员。
二、继承方式
- public继承:父类public和protected成员保持原有访问权
- private继承:父类所有成员在子类中全部为private
- protected继承:父类public成员在子类中为protected
三、构造函数和析构顺序
子类构造先调用父类构造,析构相反:
class Base {
public:
Base() {
cout << "Base构造" << endl;
}
~Base() {
cout << "Base析构" << endl;
}
};
class Derived: public Base {
public:
Derived() {
cout << "Derived构造" << endl;
}
~Derived() {
cout << "Derived析构" << endl;
}
};
// 输出结果:
// Base构造
// Derived构造
// Derived析构
// Base析构
四、访问父类成员
使用作用域运算符 :: 可以访问从父类继承的成员:
class Base {
public:
void func() {}
};
class Derived: public Base {
public:
void foo() {
Base::func(); // 调用父类函数
}
};
五、多继承
C++支持一个类同时继承多个类:
class A { };
class B { };
class C : public A, public B { };
多继承可以继承多个类的行为,但也会增加复杂度。
总结来说,继承是C++面向对象编程中非常强大的一个特性,它沿袭了封装的优势,又获得了父类的复用性。合理运用继承可以减少代码冗余,提高代码复用,降低维护成本。