class btree{
public:
int non,vor;
string str;
struct tree{
int data;
struct tree *lnode;
struct tree *rnode;
};
};
int main(){
}
如何访问 main 中的结构类型指针 lnode 是否有可能帮助??????
您定义了
struct tree
,但实际上并未将任何内容放入您的 btree
中。改为这样做:
class btree {
public:
int non, vor;
string str;
struct tree {
int data;
struct tree *lnode;
struct tree *rnode;
} node; // note the "node" that was added, now btree contains a struct tree named "node"
};
像这样访问它:
int main() {
btree myTree;
myTree.node.data = 10;
}
是的,可以访问 btree 类中树结构中声明的结构类型指针 lnode 。然而,由于树结构嵌套在 btree 类中,并且 lnode 是该嵌套结构的私有成员,因此直接从 main() 访问它并不简单。
要从 main() 访问 lnode,您需要在 btree 类中提供公共成员函数,以允许操作树结构的成员。
以下是您可以如何执行此操作的示例:
#include <iostream>
#include <string>
using namespace std;
class btree {
public:
int non, vor;
string str;
struct tree {
int data;
struct tree* lnode;
struct tree* rnode;
};
// Function to access lnode
struct tree* getLNode() {
return &treenode; // Return a pointer to the tree structure
}
private:
struct tree treenode; // Instance of the tree structure
};
int main() {
btree treeObj;
// Accessing lnode using the getLNode() function
btree::tree* lnodePtr = treeObj.getLNode();
// Now you can use lnodePtr to access and manipulate the lnode
// For example:
lnodePtr->data = 42; // Assigning a value to lnode's data member
return 0;
}
这里,getLNode()是btree类的公共成员函数,它返回指向树结构的指针。这允许您使用 btree 类的实例从 main() 访问和操作树结构的成员(包括 lnode)。