77问答网
所有问题
当前搜索:
指向基类的指针指向派生类
指向基类的指针
可以
指向派生类
答:
Person *p = new Student(),
指向基类的指针
去
指向派生类
,这时可以,因为 p 是 Person 的指针,所以 p 里面是没有 “学号” 这个成员的,也就无法访问 Student 新增的 “学号” 成员,如果试图访问编译的时候就报错了。。如果反过来,Student *s = new Person(),s 有 “学号” 成员,编译器认...
基类指针指向派生类
对象和派生类指针
指向基类
对象的区别?
答:
基类指针
可以
指向派生类
从基类继承的那部分,这就是我们所说的多态,但是如果一个派生类想想指向一个
基类的
部分,那么这个部分必须是public ,并且这个指向的部分应该是派生类原封不动的继承过来的,并且是在派生类中没有修改,为了安全起见(没有语法的前提下)必须把派生类指针强制转化为基类指针。
为什么
基类指针
可以
指向派生类
对象而派生类指针不可以
指向基类
对象
答:
1从逻辑上讲:基类派生类是一个基类对象,但基类不是派生类.派生类包含的信息比基类多,所以派生类指针
指向基类
对象的话,会调用基类对象没有的东西,显然不合逻辑.而基类
指针指向派生类
对象实例,是通过多态实现的.只能调用其接口,及虚函数.2,你同学说的对,但初学者不必深究,真想了解,先把基础学好,面向...
C++
基类的指针指向派生类
成员后,是否可以访问派生类的公共成员变量
答:
不能 除非强制类型转换成
派生类指针
原因很简单,编译器根本就不可能知道
基类
是基类,基类有几个派生类,每个派生类又有什么成员变量
为什么 C++ 中,
基类指针
可以
指向派生类
对象
答:
,那么定义一个Triangle对象,这对象既是Triangle(三角形)也是Shade(形状)。这种“是一种”关系在面向对象语言中都是适用,不只是C++。如果
基类指针指向派生类
对象,那么该指针和派生类对象
的指针
相等吗?不一定相等,派生类指针转换为基类指针时可能需要进行一定的转换(自动进行),所以不一定相等。
为什么要用
基类指针指向派生类
?而不用派生类指针指向派生类?
答:
也可以传递是C类型
的指针
,它可以返回的是矩形的面积,也可能是圆的面积。这就是多态啊。另外,子类一般都是在父类的基础上增加自己一些特有的东西,所以子类
的 指针
的有效范围 一般比父类的大。这就像int指针 +1 跨度是4 long指针 +1的跨度是8 一样,所以 子类
指针指向
父类往往会有问题的。
c++中定义了
指向基类
对象
的指针
,为什么可以将
派生类
对象的地址赋给他...
答:
指针指向
的是一个地址,只要是地址都可以赋值给他。调用这个指针其实等于将你所赋给他的地址开始,强制转换为这个
指针的
类型结构。至于类型匹配,要看你有没有在
派生类
中添加新的变量,或者
基类的
所有成员有没有被派生类继承。
C++中
基类指针指向派生类
对象可以调用派生类的新增成员么
答:
NO!
基类指针
告诉编译器它的静态类型是基类这种类型,所以限定了这个指针只能调用
基类的
自有成员。这个其实无关于他指向什么类型对象。但是,你作为这个指针的写作者,你当然知道这个基类
指针指向
的是派生类对象。所以,可以将这个基类指针强制转换为派生类指针(就是强制编译器把这个指针静态类型看作
派生类型
),...
通过
基类的指针
或引用调用虚函数,发生动态绑定,引用或指针即可
指向基类
...
答:
int main(){ Base b(5),*p; //定义基类对象,
基类指针
;Derived d; //定义派生类对象;p=&b; //对象指针
指向基类
对象 p->show(); //所以此时调用的是
基类的
show()函数 p=&d; //对象
指针指向派生类
对象 p->show(); //此时调用的是派生类的show()函数 return 0;}...
...派生类是虚函数,
基类指针指向派生类
对象,基类指针调用的是谁的函数...
答:
基类不知道派生类虚函数的存在的。用平常的虚函数表逻辑说的话,就是
基类指针
的上下文里是没有虚函数表存在的。你硬塞一个虚函数表只会导致数据错乱。派生类
的指针
给基类指针赋值的时候指向位置会变的。这个时候基类指针会
指向派生类
对象内的一个没有虚函数表的子对象。
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
基类指针数组指向派生类对象
基类指针调用派生类函数
当基类指针指向派生类对象时
基类指针指向派生类虚函数表
基类引用指向派生类对象
指针数组
static在c语言中的作用
派生类指针可以指向基类吗
基类指针数组指向派生类