实现派生类构造函数时出错:"重载函数的任何实例都与指定的类型匹配
Error Implementing Derived Class Constructor: "No Instance of Overloaded Function Matches the Specified Type
以下源代码旨在创建一个抽象基类(SubsystemClass)和一个派生的最终类(DisplaySubsystemClass)。 派生类的构造函数的实现失败,出现错误"没有重载函数"DisplaySubsystemClass::D isplaySubsystemClass"的实例与指定的类型匹配"。 我很困惑。
子系统类.hpp
#ifndef SUBSYSTEMCLASS_HPP
#define SUBSYSTEMCLASS_HPP
#include <memory>
#include "DriverClass.hpp"
class SubsystemClass
{
protected:
std::shared_ptr<DriverClass> _driver;
public:
virtual ~SubsystemClass();
enum DriverCatalog;
};
#endif
DisplaySubsystemClass.hpp
#ifndef DISPLAYSUBSYSTEMCLASS_HPP
#define DISPLAYSUBSYSTEMCLASS_HPP
#include <memory>
#include "../SubsystemClass.hpp"
#include "DisplayDriverClass.hpp"
class DisplaySubsystemClass final : public SubsystemClass
{
private:
std::shared_ptr<DisplayDriverClass> _driver;
public:
DisplaySubsystemClass(DisplaySubsystemClass::DriverCatalog driverCatalogItem);
~DisplaySubsystemClass();
enum DriverCatalog {
DISPLAY_DRIVER_CONSOLE,
DISPLAY_DRIVER_CURSES,
DISPLAY_DRIVER_SFML,
DISPLAY_DRIVER_OPENGL
};
};
#endif
显示子系统类.cpp
#include <memory>
#include "DisplaySubsystemClass.hpp"
#include "SFMLDisplayDriverClass.hpp"
DisplaySubsystemClass::DisplaySubsystemClass(DisplaySubsystemClass::DriverCatalog driverCatalogItem)
{
}
DisplaySubsystemClass::~DisplaySubsystemClass()
{
}
枚举应在构造
函数中用作参数类型之前声明。
相关文章:
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 在任何地方对C++中所有并行线程中的所有锁定和解锁实例使用相同的 std::mutex 和 lock 对象
- 我可以在没有任何实例变量的情况下使用 decltype 吗?
- 使用 Cmake 编译 LZO 时,它注意到找不到任何 VS 实例
- 如何在任何其他全局变量或静态变量之前创建/构造类实例
- 库路径绝对是正确的,可以创建所述库的实例,但在调用任何函数时"Undefined reference"
- 在矢量中搜索对象的任何实例时出错
- C++-为任何lambda创建一个实例化桶
- 为什么这些函数模板中的任何一个都与实例化不匹配?
- 是否有任何方法可以避免警告/错误模板实例化回溯
- 是否可以编写C++基类成员函数来实例化从中调用它的任何派生类?
- typename 参数的模板专用化是特定模板的任何实例化
- 实现派生类构造函数时出错:"重载函数的任何实例都与指定的类型匹配
- 是否有任何方法可以避免cpp文件中所有方法的重复类实例化
- 无任何内容的提升函数实例化
- 任何实例访问(类的)所有实例
- 'make_error_code' 未在此范围内声明,并且在实例化点通过依赖于参数的查找未找到任何声明
- 由于抽象模板arg的实例化,Boost::lambda表达式编译失败.任何解释和/或解决方法
- 为什么编译器尝试实例化一个我实际上没有在任何地方实例化的模板?
- 检查类是否继承自模板的任何模板实例化