首页 > 解决方案 > 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' 实现纯虚拟)时,我收到一个警告窗口:

错误信息

在图片中,您还可以看到我的课程在同一个项目中。

标签: c++visual-studiovisual-studio-2019

解决方案


当编译器在解析White类的定义时,它不知道LightingState类型是什么,因为它还没有被定义。您需要#include "LightingState.h"White.h.

#pragma once

#include "LightingState.h" // <-- ADD THIS!

class White : public LightingState
{
public:
    void shine();
private:

};```

推荐阅读