c++ - 数据声明中不允许虚拟

标签 c++ templates

当试图声明一个抽象类时,我似乎无法拥有模板化函数。为什么会这样,我该如何处理?这是我的示例头文件。

// Foo.h
#include "Bar.h"
#include "Baz.h"
class Foo
{
public:
    Foo();
    virtual Bar<Baz> *getBaz() const = 0;
         //snip
};

来自同一行的其他编译器错误包括

syntax error: missing ';' before '<'

最佳答案

我看起来它没有将 Bar 识别为一种类型。

检查你的两个头文件并确保:

1) 定义
2) include guards是正确的,没有被隐藏。

关于c++ - 数据声明中不允许虚拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5444918/

相关文章:

c++ - 为什么需要对函数进行 typedef,同时将 void* 转换为函数指针?

c++ - 从 Josuttis : Do different template functions, 实例化到给定特定类型的相同函数签名,导致 ODR 无效?

c++ - 如何修复涉及概念和 friend 的 C++20 编译错误?

c++ - 模板参数推导与模板类中的模板类

c++ - C++中的哈希对象问题

python - 来回 unix 域套接字锁

c++ - 为什么这些模板模棱两可?

c++ - 声明包含模板的结构的链接列表

C++ 使用 STD 解析 XML

c++ - 检测未定义行为的 C++ 实现?