77问答网
所有问题
当前搜索:
指向基类的指针指向派生类
C++中的virtual关键字是什么?怎么用?
答:
Father * pfather = new Son;//建立一个父类
的指针
让它
指向
子类 pfather->fun();GrandFather * pgfather = new Father;print(pgfather); //祖父
类指针
变量 return 0; } 4、virtual的继承性:只要基函数定义了virtual,继承类的该函数也就具有virtual属性;即 GrandFather, Father ,Son同时...
定义抽象
基类
Shape,由它派生出5个
派生类
答:
include <iostream> using namespace std;class shape { protected:virtual void shapename() =0;public:virtual int area() const {return 0;} };class circle:public shape { protected:int x,y,r;public:circle(){x=0;y=0;r=0;} circle(int a,int b,int c){x=a;y=b;r=c;} vo...
派生类
的二义性
答:
任何引用类成员的表达式必须使用一个无二义性的引用。下面的例子显示了二义性是如何发生的。//说明两个
基类
A和Bclass A{public:unsigned a;unsigned b();};class B{public:unsigned a(); //注意类A也有一个成员a和一个成员bint b();char c;};//定义从类A和类B中
派生
出
的类
Cclass C : ...
...不理解这个:赋值兼容原则(
派生类
对象是
基类
对象,反之不成立)_百度...
答:
Man* p = new Man; // OK, p
指向
了一个普通人对象.Man* p = new SuperMan; // 也OK, 虽然有些大才小用, 但是超人确实可以胜任普通人的工作.反过来的话.SuperMan* sp = new Man; // No, 错误, 我需要一个超人, 普通人无法胜任..2)
基类指针
强制转换成
派生类指针
.基类指针不可以...
C++中多态的作用?
答:
虚函数是在类中被声明为virtual的成员函数,当编译器看到通过
指针
或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)
指向的类的
类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为
基类的
,它可以
指向基类
或
派生类
的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知...
java中多态是什么意思?
答:
运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式。多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过
指向基类的指针
,来调用实现
派生类
中的方法。C++中,实现多态有以下方法:虚函数,抽象类,...
虚函数和虚
基类的
区别是什么啊?
答:
虚函数 , 虚
基类
,它们都和virtual有关,这两个带有虚字的定义容易使人混淆,下面先从作用上来解释这两个定义的区别:1.虚函数是用于多态中virtual修饰父类函数,确保父
类指针
调用子类对象时,运行子类函数的。2、.虚基类是用来在多继承中,如果父类继承自同一个父类,就只实例化一个父类(说的有点...
什么是虚函数?
答:
如存在:Base -> Derive1 -> Derive2 及它们所拥有的虚函数func()则在访问
派生类
Derive1的实例时,使用其基类Base及本身类型Derive1,或被静态转换的后续派生类Derive2的指针或引用,均可访问到Derive1所实现的func()。)动态联编规定,只能通过
指向基类的指针
或基类对象的引用来调用虚函数,其格式:...
定义抽象
基类
Shape
答:
include <iostream> using namespace std;class Shape { public:virtual void printName() = 0;virtual double printArea() = 0;};class Circle : public Shape { public:Circle(double _r):r(_r) {} void printName(){ cout << "圆:半径=" << r << ",";} double printArea(){ dou...
C++中,虚
基类
是如何避免两义性的?
答:
对于单继承
派生类
中的基类对象只有一个所以地址转换没有问题。对于有共同
基类的
继承,派生类的内存中就会有那个共同基类的多个副本,所以地址转换就会出现问题。通过虚基类,那个共同基类在最终派生类中只有一个副本,地址转换就像单继承一样。这里的实现估计是需要额外
的指针
以指定虚基类子对象的位置。所以虚...
棣栭〉
<涓婁竴椤
6
7
8
9
11
12
13
14
10
15
涓嬩竴椤
灏鹃〉
其他人还搜