注册 登录
编程论坛 C++教室

基类对象访问子类成员函数

zjf_to 发布于 2012-07-20 16:08, 1774 次点击
基类对象访问子类的成员函数时,要强制转换,有没有可以不用强制转换的方法

class Base
{
};

class Child:public Base
{
public:
    void show(){cout<<"child"<<endl;}
};

Base *b = new Child();
(Child*)b->show();

delete b;
b = NULL;
3 回复
#2
lonmaor2012-07-20 18:16
基类不具有的方法你让它show什么?
#3
pangding2012-07-20 21:24
楼主看来对多态这类问题本身理解有误。
#4
jiantiewen2012-07-21 21:44
b一开始就被定义为Base*,要b实现Child的功能,就要先让系统承认b是Child*。用强制转换不就是最简单直接的方法吗?很多时候,问题就是被人复杂化之后得来的,有这必要吗?
1