当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类
一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数
在平日里使用时,我们一般不使用 protected 或 private 继承,通常用 public 继承。当使用不同类型的继承时,遵循以下几个规则:
公有继承(public): 当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
私有继承(private): 当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
注:派生类不能继承基类的构造函数、析构函数、拷贝构造函数、友元函数、重载运算符
参考代码:
#include <iostream>
using namespace std;
class information // 基类
{
public:
void setInformation(char *n, int a)
{
name = n;
age = a;
cout << "基类1" << endl;
}
protected:
char *name;
int age;
};
class message // 基类
{
public:
void setMessage(char *addr)
{
address = addr;
cout << "基类2" << endl;
}
protected:
char *address;
};
class people: public information, public message // 派生类,多继承
{
public:
void show(void)
{
cout << "Name: " << name << endl;
cout << "Age : " << age << endl;
cout << "Addr: " << address << endl;
}
};
int main(void)
{
people p;
p.setInformation("未名湖畔的落叶", 20);
p.setMessage("广东深圳");
p.show();
return 0;
}
[john@bogon C++]$ ./a.out
基类1
基类2
Name: 未名湖畔的落叶
Age : 20
Addr: 广东深圳