c++继承与派生选择题。在线等。

classX{inta;public:X(intx=0){a=x;}};classY:publicX{intb;public:Y(intx=0,inty=0):X(y))... class X{int a;public:X(int x=0){a=x;}};class Y:public X{int b;public :Y(int x=0,int y=0):X(y)){ b=x;}};下列语句组中出现语法错误的是?A. X *pa=new Y(1,2);B.X a1=Y(1,3);C.Y b1(2,3); X &a3=b1;D.X a4(10);Y b2=a4; 答案是D 为什么?还有那个单独的对象 a4 到底表示的是什么? 展开
 我来答
匿名用户
2013-11-15
展开全部
这道题考察的是这样一个知识点:子类不可以指向父类,父类可以指向子类D试图用子类对象b2指向父类的一个对象实例a4,所以有语法错误a4是类X的一个实例 C++中,类之间的“=”从语义逻辑上讲代表一种is-a关系,举个例子,比如class student :public person,也就是student继承person类,那么person p=new student();是对的,因为它满足student is a person这样的关系,反过来则不一定,如student s=new person();就不对,因为一个person不一定是一个student。这样可以帮助你理解。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式