我有錯誤 「無效使用‘這個’非成員函數」C++的使用無效「這」在非成員函數
的是編寫代碼來避免的正確方法這個錯誤。
tree.h中:
#ifndef TREE_H
#define TREE_H
template <typename T>
class Node;
class Tree
{
public:
Tree();
template <typename TNodeType>
Node<TNodeType> elaborate(Node<TNodeType> &node);
Tree* self();
void doSomething();
};
template <typename TNodeType>
Node<TNodeType> createNew() {
Node<TNodeType> model(this); //<-- ERROR HERE
return model;
}
#endif // TREE_H
node.h:
#ifndef NODE_H
#define NODE_H
#include <tree.h>
template <typename TNodeType>
class Node
{
public:
Node(Tree *tree);
TNodeType current();
private:
Tree *_tree;
};
template <typename TNodeType>
Node<TNodeType>::Node(Tree *tree):
_tree(tree)
{
_tree->doSomething();
}
template <typename TNodeType>
TNodeType Node<TNodeType>::current()
{
//some code here
}
#endif // NODE_H
解決。
在tree.h中我跳過的聲明:
template <typename TNodeType>
Node<TNodeType> createNew();
我曾在定義 「樹::」 之前忘了 「createNew()」
我同意這個問題可以避免;-)。對不起
錯誤信息的哪部分你不明白? – juanchopanza
您是否嘗試瞭解自己的代碼?成功?沒有?爲什麼不?現在刪除你的問題... – 2013-07-18 05:39:29
我意識到了錯誤。我現在想了解如何解決它。 – Sebtm