zoukankan      html  css  js  c++  java
  • C++继承中的类型兼容原则

    类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样,公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决

    类型兼容规则中所指的替代包括以下情况: 

    (1)父类指针可以直接指向子类对象
    (2)父类引用可以直接引用子类对象
    (3)子类对象可以直接初始化父类对象
    (4)子类对象可以当作父类对象使用
    (5)子类对象可以直接赋值给父类对象

    #include <iostream>
    using namespace std;
    
    class Parent
    {
    private:
        char sex;
    public:
        Parent(char s):sex(s){}
        void printP()
        {
            cout<<"parent...."<<endl;
        }
    };
    
    class Child:public Parent
    {
    private:
        int age;
    public:
        Child(int a, char s):age(a),Parent(s){}
        void printC()
        {
            cout<<"child..."<<endl;
        }
    };
    
    int main()
    {
        Child c1(5, 'm');
        Parent *p1 = &c1;    //父类指针指向子类对象
        p1->printP();    //只能调用父类方法
        Parent &p2 = c1;    //父类对象引用子类对象
        p2.printP();    //只能调用父类方法
    
        Child c2(5, 'm');
        Parent p3(c2);    //用子类对象初始化父类对象
        p3.printP();
        Parent p4 = c2;    //用子类对象给父类对象赋值
        p4.printP();
    
        return 0;
    }
    View Code

    执行结果:

    parent....
    parent....
    parent....
    parent....
  • 相关阅读:
    doker基础用法
    docker容器技术基础入门
    流模式
    装饰器模式
    适配器模式
    组合模式
    桥接模式
    观察者模式
    注册模式
    模板模式
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12924722.html
Copyright © 2011-2022 走看看