これは初めてのことです。私はツリーのtnodeクラスを作成しましたが、今はツリー自体のクラスを作成しようとしています。しかし、私は理解できないいくつかのエラーを受けました。n-aryツリーのエラーC++
#ifndef Tree_Ntree_h
#define Tree_Ntree_h
// SIZE reprsents the max number of children a node can have
#define SIZE 10
// SEPERATE will allow the program to distinguish when a subtree no longer has children
#define SEPERATOR '@'
#include <iostream>
#include <fstream>
template <typename T>
class tnode{
public:
T value;
tnode *child[SIZE];
tnode() {};
tnode<T> *addChild(T data){
tnode*temp = new tnode;
temp -> value = data;
for (int i=0; i<SIZE; i++)
temp -> child[i] = NULL;
return temp;
}
};
template <typename T>
class Ntree{
private:
tnode<T> *root;
T data;
std::string filename;
public:
Ntree(){ root= NULL;}
Ntree(T data){ *root = data;}
inline T getRoot(){return root;}
私のエラーは最後の3行です。最後の行の2番目に
No viable conversion from 'tnode > *' to 'std::__1::basic_string'
と最後の行(*ルート=データ)(ルート= NULL)に第三これは:私のコード(getRoot)の最後の行に が、これは誤りでありますエラー:
No viable overloaded '='
なぜこのような状況で=演算子をオーバーロードする必要があるのかわかりません。
なぜマクロの代わりにテンプレートの引数としてsizeを使用してみませんか? –
あなたの例には、ntreeクラスが終了しないなど、多くの構文エラーがあります。理解できないエラーに集中できるように、コードを修正してください。 –