【发布时间】:2014-04-11 10:22:26
【问题描述】:
我正在尝试为我的 Adv 创建一个基于文本的 RPG。编程课程,我对多态性有点不确定。我正在分段构建它,目前我正在尝试基于先前的分配来获得视觉显示,该分配涉及通过坐标将彩色字符绘制到控制台以创建地图。所以我有这个主要的:
#include "Map.h"
using namespace std;
int main()
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
ColorMap* _map = new ColorMap(handle, "north");
}
我想指向基类的函数populateMap,然后访问派生类的populateMap。这是供参考的标题
#pragma once
#include <Windows.h>
#include <string>
using namespace std;
class Map
{
public:
Map(HANDLE handle, string direction);
~Map(){};
virtual void update();
virtual void populateMap();
void drawPoint(int x, int y) const;
protected:
HANDLE mHandle;
char mMap[15][15];
char mWall;
char mSpace;
string mIncomingDirection;
};
class ColorMap : public Map
{
public:
ColorMap(HANDLE handle, string direction);
~ColorMap(){};
virtual void update();
virtual void populateMap();
void drawMap();
private:
int mColor;
};
【问题讨论】:
-
你的问题是什么?
-
_map->populateMap() -
您的基类缺少虚拟析构函数。
标签: c++ function polymorphism virtual