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 ;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM