c++ - 模板类的组成

标签 c++

我有一个模板类:

template<typename A, typename B>
class A {

};

在另一个.h文件中

template<typename A, typename B>
class A; //forward declaration

我怎么能在这里声明m_A?我不断收到 C++ forbids declaration of A with no type error:

class B {
  A* m_A;
};

最佳答案

如果您不知道要在 B 中实例化 A 的类型,那么您还必须使用 制作一个模板>B

template<typename A1, typename B1>
class B
{
   A<A1, B1>* m_A;
};

要么那样,要么您必须将 A 实例化为特定类型,即,

class B
{
    A<Type_1, Type_2>* m_A;
};

关于c++ - 模板类的组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5878424/

相关文章:

使用qt的c++应用程序,如何包含gnuplot

c++ - 在已在源中重载的 header 中使用模板中的方法

c++ - 使用 Boost 基本截止时间计时器来调用类方法

c++ - 为什么我的 vector 没有按预期初始化?

c++ - 结构成员的默认值

c++ 异常类继承到模板类

python - boost::python:将 C++ 类暴露给嵌入在 C++ 应用程序中的 python 脚本

c++ - 如何读取大量数字?

c++ - 这个派生类是如何抽象的呢?

c++ - 初始化模板类的静态成员