gpt4 book ai didi

c++ - 试图通过指针访问嵌套类的成员函数

转载 作者:行者123 更新时间:2023-11-28 03:19:59 25 4
gpt4 key购买 nike

我是 C++ 的新手,我认为这个问题从根本上与指针有关;周围进行了研究,但找不到与以下上下文相关的任何明显内容。

我已经概述了我的代码结构,以突出我遇到的问题,它试图通过指针 访问嵌套的 Node 类成员函数 isLeftChild root 到常量 Node;我可以使 isLeftChild 成为 Tree 类的成员函数,但感觉 isLeftChild 成为嵌套类的成员函数更符合逻辑节点类。

class Tree {

class Node {
public:
bool isLeftChild(void);
};

Node const* root;
public:
void traverse(Node const* root);
};

void Tree::traverse(Node const* root) {
// *** Line below gives compile error: request for member 'isLeftChild' in
// 'root', which is of non-class type 'const Tree::Node*'
if ( root.isLeftChild() ) {
cout << "[is left child]";
}
}

bool Tree::Node::isLeftChild(void){
bool hasParent = this->parent != NULL;

if ( hasParent ) {
return this == this->parent->left;
} else {
return false;
}
}

如何从 traverse 成员函数中访问这个成员函数?问题是否围绕着 root 是一个指针这一事实展开?

谢谢,亚历克斯

最佳答案

因为你有一个指向 const 参数的指针,你只能在它上面调用 const 方法。

尝试

 bool isLeftChild() const;

并将“const”添加到实现中。

关于c++ - 试图通过指针访问嵌套类的成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com