我对 C++ 很陌生,认为这个问题从根本上与指针有关;进行了研究,但找不到与以下上下文相关的任何明显内容。
我已经概述了我的代码结构,以突出我遇到的问题,即试图通过指向常量的指针访问嵌套Node
类成员函数;我可以制作类的成员函数,但觉得成为嵌套类的成员函数更合乎逻辑。isLeftChild
root
Node
isLeftChild
Tree
isLeftChild
Node
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
指针这一事实展开?
谢谢,亚历克斯