赋值兼容规则

来源:互联网 发布:tower im for mac 编辑:程序博客网 时间:2024/05/16 16:10

#include<iostream>
using namespace std;
class A
{
public:
    A()
    {a=0;}
    A(int i)
    {a=i;}
    void print()
    {cout<<a<<endl;}
    int geta()
    {return a;}
private:
    int a;
};
class B:public A
{
public:
    B()
    {b=0;}
    B(int i,int j):A(i),b(j)
    {}
    void print()
    {A::print();cout<<b<<endl;}
private:
    int b;
};
void fun(A& d)
{
    cout<<d.geta()*10<<endl;
}
void main()
{
    B bb(9,5);
    A aa(5);
    aa=bb;
    aa.print();
    A *pa=new A(8);
    B *pb=new B(1,2);
    pa=pb;
    pa->print();
    fun(bb);
    getchar();
}