C++:继承

  当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类

  一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数

  在平日里使用时,我们一般不使用 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: 广东深圳

猜你喜欢

转载自blog.csdn.net/keyue123/article/details/79178502
今日推荐