顺德大良区委组织网:求教C++高手

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 00:26:27
1.有基类A和他的派生类B,B类新加了成员函数X()
那么:A *Ap,a;B b;
Ap=&b;
为什么基类指针能指向派生类对象呢?
那么Ap->X() 成立吗?还有a=b;成立吗?

2.同一类对象间可以用=赋值,书上说数据是逐个拷贝的。这说的是数据成员吧,那成员函数如何处理呢?

1.基类指针指向派生类,则对于基类这个指针来讲,其可见部分就是基类定义的那些东西,派生类的新定义的元素对于基类来讲是不可见的,其实就是向上类型转化。所以Ap->X()不成立,不过a=b却是可以的,原因就在于向上类型转换。
2.函数属于这个类的一个接口,不属于这个类的数据记录区域的值,所以对象赋值指的是数据赋值,接口是没有办法赋值的。就像一个函数=另一个函数不成立一样。

1.就是能指啊!Ap->X() 不成立吧,a=b赋值好像不成立,a==b不成立。
2.成员函数是存在类中的,对象中不存储成员函数。