0
我有一個非常簡單的模板類。模板子類的作用域分辨率
#pragma once
#include <iostream>
template <class T>
class Test
{
protected:
class Node
{
public:
Node(Node& node) {}
protected:
virtual Node* copyNode(Node&);
private:
};
};
template <class T>
Test<T>::Node* Test<T>::copyNode(Test<T>::Node& node)
{
return new Test<T>::Node(node);
}
我在主程序中使用它如下。
#include "Test.h"
using namespace std;
int main()
{
Test<int> tree;
getchar();
}
我得到語法錯誤C2061:「identifier'Node'」。
聲明和實現都在同一個頭文件中(鏈接器有模板類的問題)。我正在使用Visual Studio 2015.
實現copyNode
方法而不寫入內聯的正確方法是什麼?
另外'節點::'之前'copyNode'失蹤。 – LogicStuff
'copyNode()'在'Node'的範圍內聲明。 –
@LogicStuff:由第一個錯誤停止,錯過那個:/ fixed。 – Jarod42