为什么A *a=new B不直接写成B b,或者B *p呢?B是A的子类有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 20:31:17
![为什么A *a=new B不直接写成B b,或者B *p呢?B是A的子类有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗](/uploads/image/z/6878220-60-0.jpg?t=%E4%B8%BA%E4%BB%80%E4%B9%88A+%2Aa%3Dnew+B%E4%B8%8D%E7%9B%B4%E6%8E%A5%E5%86%99%E6%88%90B+b%2C%E6%88%96%E8%80%85B+%2Ap%E5%91%A2%3FB%E6%98%AFA%E7%9A%84%E5%AD%90%E7%B1%BB%E6%9C%89%E4%BA%BA%E8%AF%B4%E6%89%A9%E5%B1%95%E7%B1%BB%E6%98%AF%E4%B8%8D%E5%8F%AF%E9%A2%84%E7%9F%A5%E7%9A%84%2C%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%8F%AF%E9%A2%84%E7%9F%A5%E5%91%A2%3F%E8%BF%99%E9%87%8Cnew+B%E4%B8%8D%E6%98%AF%E5%B7%B2%E7%BB%8F%E5%87%BA%E7%8E%B0%E4%BA%86B%E5%90%97)
为什么A *a=new B不直接写成B b,或者B *p呢?B是A的子类有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗
为什么A *a=new B不直接写成B b,或者B *p呢?
B是A的子类
有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗
为什么A *a=new B不直接写成B b,或者B *p呢?B是A的子类有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗
楼主很明显涉足C++不深啊!
给楼主举个例子来说明一下,A 代指鸟类,B是A的子类,B用鸡来表示,C也是A的子类,C用鸭来表示,所以A *a=new B是正确的.A *a=new C也是正确的对吧!假设你拿着钱去上街买肉,钱多买鸡,钱少买鸭,反正最后得买东西,买用buy()方法来表示,那么buy()方法要么返回鸡,要么返回鸭,所以A *a=buy()是正确的,但是如果写成B *b=buy()的话就有可能出错,因为还有可能买鸭回来.所以说扩展类是不可预知滴!A *a=new B只是一种教科书里面通用的方法,旨在让你逐渐地习惯这种编程思想,写成B *b=new B 也是完全正确的,因为确实像你说的那样这里B已经给出来了,但是随着编程的深入,使用new运算符的机会会变得越来越少……将不可预知的变量赋值给通用的类型是最妥当的方法,这种方法俗称:向上类型转换
为什么A *a=new B不直接写成B b,或者B *p呢?B是A的子类有人说扩展类是不可预知的,为什么不可预知呢?这里new B不是已经出现了B吗
A consist of B.A是由B组成,为什么不写成A is consisted of
假设A是类B的父类,声明中:A x =new B();有什么意义嘛?为什么B x=new A();就不对了
My glasses were broken .So I want to buy_B_____ A.new ones B.a new pair 为什么不选A
(a+b)•c可以省掉•直接写成(a+b)c吗
宏定义的时候为什么要加那么多括号比如 A*B 为什么要写成 ((A)*(B))我想直接加一个外面的括号 写成 (A*B)不就行了?
概率里 A-B=A-AB 为什么 概率减法公式直接可以写成P(A-B)=P(A)-P(AB)?P(A-B)不是应该=P(A-AB)吗?这个括号可以随便拆开变成P(A)-P(AB)吗?为什么P(A-AB)可以直接拆成P(A)-P(AB) 是不是所有的P(两个东西相加)
java中new的两边啥意思.A a=new A();A a=new B();能不能用通俗的话说下..
【英语】My new coat can keep ( ) the rain. A. off B. out 应选A.为什么不选B?
下列代码中为什么要写成 a=Val(Text1.Text),而不是直接写成 a=Text1.Text
a乘b加b可以写成( )
C# class A {} class B:A {} class C:B Main() { A a = new A; B b = new C; A c =b; }A c
Peter’s father is______the money to buy a new car.A.counting on B.counting为什么选A,不选B,两者有何区别?
关于一些电离方程式的书写A.NaHCO3==Na+ +HCO3- 为什么不写成 NaHCO3==Na+ +H+ +CO3 2-B.NaHSO4==Na+ +H+ +SO4 2- 为什么不写成 NaHSO4=Na+ + HSO4-C..HClO =(可逆)= H+ +ClO- 为什么不写成 HClO =(可逆)= H+ +Cl+ +O2-
a和b交换的算法疑问?为什么要交换a和b的值要使用中间变量temp,temp=a; a=b; b=temp; 而不直接使用 a=b; b=a; 从内存分配角度讲,为什么不能这样?在第一种中,已经被赋值的a难道只有赋值给其
Her new shoes were made __ leatherAby B of Cin D from为什么不选A啊
若向量OA=向量a,向量OB=向量b,则角AOB平分线上的向量OM为多少答案是λ(a|a|+b|b|)(λ由 OM确定) 我不反对,但是为什么不直接写λ(a+b)?a跟|a| b跟|b|除的关系,复制过来变成乘了
(a+b)c=直接写答案