Я переопределил оператор >>
как функцию друга в классе шаблона в заголовке. В нем мне нужно вызвать другую функцию с именем inputHelper
, которую я также определил в заголовке. (Входной помощник рекурсивный)вызов функции из функции друга, определенной в заголовке в C++
файла заголовок выглядит следующим образом:
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
находится вне сферы действия класса, но я не уверен, как это решить.
Пожалуйста, пост код, который воспроизводит проблему (псевдо-код, который вы, вероятно, не отвечал бы составить по ряду причин, не связанных с вашей проблемы) и сказать, где использование именно вы получите сообщение об ошибке ... – sth