相关疑难解决方法(0)

在C++中使用未声明的标识符以及模板和继承

以下代码无法编译 - 使用未声明的标识符.我使用GCC和XCode进行编译.

一切都在一个头文件中.

include "MyArray.h"

template <typename T>
class MyBase {
public:
  MyBase();
  virtual ~MyBase();
  void addStuff(T* someStuff);
protected:
  MyArray<T*> stuff;
};

template <typename T>
MyBase<T>::MyBase() {}
template <typename T>
MyBase<T>::~MyBase() {}

template <typename T>
void MyBase<T>::addStuff(T* someStuff) {
  stuff.add(someStuff);
}

// ---------------------

template <typename T>
class MyDerived : public MyBase<T> {
public:
  MyDerived();
  virtual ~MyDerived();
  virtual void doSomething();
};

template <typename T>
MyDerived<T>::MyDerived() {}
template <typename T>
MyDerived<T>::~MyDerived() {}

template <typename T>
void MyDerived<T>::doSomething() {
  T* thingy = …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×1

inheritance ×1

templates ×1