我今天开始编写一个项目来了解二进制搜索树的更多信息,但在编写类定义并检查它们时,我的访问者返回false 结果返回2然后在终端的下一行4196704上。 继承人代码:
#include <iostream>
using namespace std;
class node
{private:
int data;
node *right,*left;
public:
node();
node(int d,node *r,node *l)
{
d= data;
r=right;
l=left;
}
int nodedata() ;
};
int node::nodedata()
{
return data;
}
int main()
{
node root(30,0,0);
node root2(77,0,0);
cout<< root.nodedata() << endl;
cout<< root2.nodedata() << endl;
return 0;
}
答案 0 :(得分:0)
我猜你不是在写c ++。 你对变量的定义是错误的:
d= data;
应该是
data = d;
至于为什么它在输出中显示一些werid数据,那么这些是你的系统放在那里的实际内存位置中的数字,然后你将这个尚未重写的内存块分配给这个对象,
并指定指针:
r=right;
l=left;
应该是
right= r;
left=l;
如果您想访问它们,请将它们公开或创建方法来访问它们 例如:
cout<<(root.right)-> nodedata() << endl; //if you make right && left public