我无法解决这个问题......
所以我有这样的类Node定义(这是一个最小版本)
class Node {
private:
std::vector <const Node*> leaves;
public:
const Node* get_Leaf(int i);
我已经像这样定义了get_Leaf
const Node* Node::get_Leaf(int i){
return leaves[i];
}
但是,我仍然得到错误“无法将const Node *转换为Node *。
有人请帮忙
答案 0 :(得分:3)
在这里做出假设。
Node * n;
n->get_Leaf(0); //works, returns const Node*
n->get_Leaf(0)->get_Leaf(0); //fails, can't call
//(const Node* Node::get_Leaf) on const Node*
假设您在get_Leaf
的返回值或返回get_Leaf
的其他函数上调用const Node*
。在这种情况下,您需要像get_Leaf
const Node* get_Leaf(int i) const;