c++ - C++ 无法在 Visual Studio 中实现抽象类
问题描述
我尝试在 C++ 中实现 Pattern 状态,但显然我的基类是not a class or struct name
. 我在 Visual Studio 2019 中收到此错误。我的基类如下:
#pragma once
class LightingState
{
public:
LightingState() {};
virtual void shine() = 0;
};
应该实现该shine()
函数的类如下所示:
#pragma once
class White : public LightingState
{
public:
void shine();
private:
};
对于我的基类LightingState
,我没有.cpp
文件,因为我确实希望这个类是一个纯抽象类。
当我尝试应用建议的修复(为 Base 'LightingState' 实现纯虚拟)时,我收到一个警告窗口:
在图片中,您还可以看到我的课程在同一个项目中。
解决方案
当编译器在解析White
类的定义时,它不知道LightingState
类型是什么,因为它还没有被定义。您需要#include "LightingState.h"
在White.h
.
#pragma once
#include "LightingState.h" // <-- ADD THIS!
class White : public LightingState
{
public:
void shine();
private:
};```
推荐阅读
- python - cmd中的可编辑终端边框
- c++ - 尝试使用 wininet 将文件上传到 FTP 时遇到问题 [Id 返回 1 退出状态]
- square - 将 wix 网站重定向到新网站
- haskell - Haskell 语言服务器并转到库资源
- colors - Greasemonkey 编码查询:更改文本颜色/样式和/或使自定义背景图像更亮/更透明?
- rust - 解构复杂的返回类型
- ios - 为什么设置半径和大小时我的图像质量下降?
- regex - 颤振分裂一个字符串保持分隔符
- python - 分类模型中对抗性攻击的排列范数
- cookies - 响应中的 Set-Cookie 标头未设置 Cookie