zoukankan      html  css  js  c++  java
  • c++,派生类对象可以对基类赋值,基类对派生类不可以赋值

     派生类对象可以对基类对象赋值,赋值时属于派生类独有的部分就舍弃不用。

    #include <iostream>
    using namespace std;
    
    class DemoA
    {
    public:
        int m_a;
        void show();
        DemoA(int val);
    };
    DemoA::DemoA(int val)
    {
        m_a = val ;
    }
    void DemoA::show()
    {
        cout<<"ashow: DemoA.m_a="<<this->m_a<<endl;
    }
    //-------------------
    class DemoB :public DemoA
    {
    public:
        int m_b;
        void show();
        DemoB(int aval , int bval);
    };
    
    DemoB::DemoB(int aval,int bval):DemoA(aval)
    {
        m_b = bval ;
    }
    void DemoB::show()
    {
        cout<<"bshow: DemoB.m_a="<<this->m_a<<endl;
        cout<<"bshow: DemoB.m_b="<<this->m_b<<endl;
    }
    
    //---------------
    int main()
    {
        DemoA ca(11);
        DemoB cb(111,222);
        ca.show();
        cb.show();
    
        ca = cb;//派生类对象可以对基类赋值
        ca.show();
    
    //     cb=ca;//基类对派生类不可以赋值 error C2679: 二进制“=”: 没有找到接受“DemoA”类型的右操作数的运算符(或没有可接受的转换)
    //     cb.show();
    //     
        while(1);
        return 0 ;
    }
  • 相关阅读:
    7.24总结
    7.23总结
    7.22总结
    。。。
    7.21总结
    7.20总结
    7.19总结
    大假期第四次测试总结
    大假期第三次测试
    题目分享k
  • 原文地址:https://www.cnblogs.com/mylinux/p/4094328.html
Copyright © 2011-2022 走看看