>>
ヘッダーのテンプレートクラスで、演算子をフレンド関数として再定義しました。inputHelper
その中で、ヘッダーで定義した別の関数を呼び出す必要があります。(入力ヘルパーは再帰的です)
ヘッダーファイルは次のとおりです。
template< typename NODETYPE > class Forest
{
/* (other friends) */
friend void inputHelper(istream& file, int previousDepth,
ForestNode<NODETYPE>& previousNode, ForestNode<NODETYPE> *nodeArray,
int nodeCount)
{
/* (dostuff) */
if(someconditional)
{
/* call inputHelper */
}
}
friend istream& operator>>(istream& file, Forest<NODETYPE>& f1)
{
/* (dostuff) */
/* (call inputHelper) */
}
public:
/* ... */
private:
/* ... */
}
ただし、コンパイル時に、と表示されます|140|error: 'inputHelper' was not declared in this scope|
。どちらもヘッダーでフレンド関数として定義されているため、何か特別なことをする必要がありますか?それはクラスの範囲外であることは理解してinputHelper
いますが、これを解決する方法がわかりません。