c++ - 如何用子类对象初始化超类类型的指针?
问题描述
我正在尝试通过以下方式初始化指针:
Space* a = new GO();
GO
的子类在哪里Space
。这是我的代码:
空间.h
#include <iostream>
#include <string>
class Space
{
protected:
std::string name;
public:
Space ();
Space (std::string new_name);
std::string get_name ();
};
空间.cpp
#include <string>
#include <vector>
#include <iostream>
#include "Space.h"
Space::Space(){}
Space::Space(std::string new_name):
name(new_name){}
std::string Space::get_name() {
return name;
}
GO.h
#include "Space.h"
class GO:public Space{
public:
GO();
};
去.cpp
#include "GO.h"
GO::GO()
:Space("Go")
{}
我收到错误:
'GO' 之前的预期类型说明符
初始化时无法将“int*”转换为 Space*
预期 ',' 或 ';' 在“开始”之前
如何修复这些错误?有没有更好的方法来声明这样的指针?
解决方案
推荐阅读
- unity3d - Unity Vimeo Player 无法在 Android 上运行
- android - 旧 Sdk 的 RecyclerView 替代方案
- amazon-cognito - 如何使用 terraform 修复 cognito 用户池域破坏,以便重新创建用户池?
- apache - cwp上centos7上apache启动失败
- arrays - 比较 2 个结果
通过filteredList swift4的选定索引的对象 - oracle - 如何在导入/导出时强制 SQL 开发人员使用 imp/exp 命令
- c# - 如何在返回列表的操作中返回错误
通过ajax输入 - javascript - 它不工作。使用点击切换引导图标,如果其他(JS)
- java - 使用 maven 插件执行器规则失败
- javascript - JS中的递归排序