继承中的类型兼容行规则

作者在 2008-11-21 19:20:10 发布以下内容

类型兼容性规则是指在需要基类对象的任何地方,都可以使用公有派生的对象来替代。

其中所指的替代包括一下几种:

1>派生类的对象可以赋值给基类对象;

2>派生类的对象可以初始化基类的引用;

3>派生类的对象的地址可以赋给指向基类的指针;

注意在替代之后,派生类对象可以作为基类的对象使用,但只能使用从基类继承的成员

class B

{...};

class D:public B

{...};

main()

{B b1,*p1;

 D d1;

 b1=d1;   //第一类;

 B&b=d1;  //第二类

 P1=&d1;  //第三类

}

for example:

#include<iostream>
using namespace std;
class B0
{public:
  void display(){cout<<"B0::display()"<<endl;}
};
class B1:public B0
{public:
  void display(){cout<<"B1::display()"<<endl;}
};
class D1:public B1
{public:
  void display(){cout<<"D1::display()"<<endl;}
};
void fun(B0 *ptr)
{ptr->display();}
int main()
{B0 b0,*p;
 B1 b1;
 D1 d1;
 p=&b0;
 fun(p);
 p=&b1;
 fun(p);
 p=&d1;
 fun(p);
 }

其结果为:


C++ | 阅读 2033 次
文章评论,共0条
游客请输入验证码
浏览77323次