问题
I have a class at the moment with these lines of code. What I am struggling with is the function write in that my IDE says "Use of undeclared identifier for root"
Why is this?
template<typename T>
class X
{
public:
const void write(std::ostream & output);
private:
std::unique_ptr< TreeNode<Ty> > root;
};
const void write(std::ostream & output)
{
root->write(output);
}
Edit to show more full extent of the code with the Template.
回答1:
Try using the scope resolution operator to tell the compiler that your write function belongs to class X:
const void X::write(std::ostream & output)
{
root->write(output);
}
Edit 1: templates
With templates, the syntax becomes:
template<typename T>
const void
X<T>::write(std::ostream & output)
{
root->write(output);
}
来源:https://stackoverflow.com/questions/46943651/trouble-with-identifying-why-the-ide-is-saying-undeclared-identifier-in-c