类Class B从Class A派生,哪么Class A *a=new Class B(..)表达式合法么?为什么啊?
char **p,a[20][10];
p=a在以后的程序中会出现什么问题?为什么?
基类(图形) --> 派生类(三角形)
他们之间的关系:
has --> a
显然 基类 相对于 派生类 来说是 高阶
我觉得这就象是强制类型转换
相当于:
Class B *b=new Class B(..);
Class A *a=(Class A*)b;
A 比 B 高阶 所以成功
反过来就不行
举例:
1。int x1=1;float x2=x1; //x1 比 x2 低阶,成功
2。float x1= 2.3 int x2=x1;//x1 比 x2 低阶,会导致“失真”
[此贴子已经被作者于2006-6-8 14:18:21编辑过]
class A
{....};
class B:public A
{....};
显然,B中包括A的成员...
定义A指针对象,当然可以分配B那么大的空间.只是有些浪费罢了...
---------------------------------------------------
p=a在以后的程序中会出现什么问题?为什么?
图形是一个三角形?我不记得书上怎么写的了,我只是依据感觉写的,我认为图形包括了三角形
就算是is-->a 我也认为是这样的
基类(图形) --> 派生类(三角形)
他们之间的关系:
a <-- is
三角形是图形