小编Ian*_*son的帖子

如何从基类指针调用派生类方法?

我有一个类似于以下的类结构

class A
{
public:
    A(void);
    ~A(void);

    void DoSomething(int i)
    {
        std::cout << "Hello A" << i << std::endl;
    }
};

class B : public A
{
public:
    B(void);
    ~B(void);

    void DoSomething(int i)
    {
        std::cout << "Hello B" << i << std::endl;
    }
};

class Ad : public A
{
public:
    Ad(void);
    ~Ad(void);
};

class Bd : public B
{
public: 
    Bd(void);   
    ~Bd(void);
};
Run Code Online (Sandbox Code Playgroud)

我想将派生类的实例作为A*的集合存储在容器(标准映射)中,然后遍历容器并为每个实例调用方法.

#include "A.h"
#include "B.h"
#include "Ad.h"
#include "Bd.h"
#include <map>
int main(int argc, …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

25
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

inheritance ×1