设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1601|回复: 9
打印 上一主题 下一主题

[求助]问两个问题,能解答一下么

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 03:07:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
类Class B从Class A派生,哪么Class A *a=new Class B(..)表达式合法么?为什么啊?

char **p,a[20][10];
p=a在以后的程序中会出现什么问题?为什么?
2#
发表于 2009-11-3 03:07:09 | 只看该作者
基类(图形) --> 派生类(三角形)
他们之间的关系:
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 低阶,会导致“失真”
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 03:07:10 | 只看该作者
呃,wfpb,注意一点,Class A *a=(Class *)b;不是强制类型转换,因为这个过程只存在指针类型转换,跟强制类型转换不同
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 03:07:12 | 只看该作者
只要指针指的东西,它的内容
被指的对象有就行了
小指针可以指大东西
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 03:07:13 | 只看该作者
类Class B从Class A派生,哪么Class A *a=new Class B(..)表达式合法么?为什么啊?



class A
{....};

class B:public A
{....};
显然,B中包括A的成员...
定义A指针对象,当然可以分配B那么大的空间.只是有些浪费罢了...
---------------------------------------------------


char **p,a[20][10];
p=a在以后的程序中会出现什么问题?为什么?



用标准的gcc/g++编译器都不能编译通过.......
p是二级指针,只能指向一级指针的自身地址.
而a只是指向char [3][4]的常量指针,类型不相,不相批配
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 03:07:15 | 只看该作者
这样用指针
char *p,(*q)[2],a[3][2]={'1','2','3','4','5','6'};
p=reinterpret_cast<char*>(a);
for(int i=0;i<6;i++)
cout<<p[i]<<' ';
cout<<endl;
q=a;
for(i=0;i<3;i++)
for(int j=0;j<2;j++)
cout<<q[i][j]<<' ';
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 03:07:16 | 只看该作者
基类(图形) --> 派生类(三角形)
他们之间的关系:
is--> a
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 03:07:17 | 只看该作者
图形是一个三角形?我不记得书上怎么写的了,我只是依据感觉写的,我认为图形包括了三角形
就算是is-->a 我也认为是这样的

基类(图形) --> 派生类(三角形)
他们之间的关系:
a <-- is

三角形是图形
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 03:07:18 | 只看该作者
o
不好意思是我写错了
回复 支持 反对

使用道具 举报

10#
发表于 2009-11-3 03:07:19 | 只看该作者
哦,理解万岁
基类 ->|-----|
     |-----|


子类 ->|-----|
     |-----|继承的基类
----------------
     |-----|
     |-----|自己又添加的东西
基类一个指针能指的东西,子类都有,你要什么给什么,为什么不可以
那三角形什么的太复杂了
反过来为什么不可以
因为系统不知道你会不会用基类的指针来调用子类的东西,所以不可以
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 10:39 , Processed in 0.103237 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表