これは、ヘッダー プロテクトおよびその他の関数を除いた Graph.h の内容です。
template <class T> class Node{
public:
T data;
Node<T> *NextNode;
public:
Node();
Node(T a);
T getValue();
void setValue(T a);
void chainNode(Node<T> a);
void chainNode(Node<T> *a);
Node<T> getNextNode();
void unchainNode();
};
//related methods
template <class T> Node<T>::Node(){
data = NULL;
NextNode = NULL;
}
template <class T> void Node<T>::chainNode(Node<T> a){
NextNode = NULL;
NextNode = &a;
}
template <class T> void Node<T>::chainNode(Node<T> *a){
NextNode = NULL;
NextNode = a;
}
template <class T> class List{
public:
Node<T> *Head;
List(Node<T> a);
void AddInFront(Node<T> a);
void AddInFront(Node<T> *a);
void Append(Node<T> a);
bool Remove(Node<T> a);
bool Remove(T a);
bool Contains(T a);
bool DeleteList();
};
//Only working method of List
template <class T> List<T>::List(Node<T> a){
Head = &a;
}
// Error occurs in this Function
template <class T> List<T>::AddInFront(Node<T> a){
a.chainNode(Head);
Head = NULL;
Head = &a;
}
そして、これが私のメインです
#include<iostream>
#include"Graph.h"
int main(){
Node<int> a = Node<int>(20);
List<int> d = List<int>(a);
Node<int> b = Node<int>(20);
d.AddInFront(b);
}
そして、ここに私のエラーがあります
error C4430: Missing type specifier - int assumed . Note: C++ does not support default- int
私のコンパイラ (MSVS 11) は、AddInFront 関数の最後に C4430 エラーがあることを教えてくれます。つまり、最後の中かっこ以外の行にエラーがあることを意味します。このエラーを取り除こうとしますが、修正できないようです。