C++ 指向树头的指针
(基本上,这个类创建了一棵左右各有两片叶子的树(另外两棵树),每棵树都有两片叶子,以此类推。) 所以我这样做了:C++ 指向树头的指针,c++,oop,pointers,C++,Oop,Pointers,(基本上,这个类创建了一棵左右各有两片叶子的树(另外两棵树),每棵树都有两片叶子,以此类推。) 所以我这样做了: Tree temp(5); Tree* tem = &temp; temp.SetInfo(10); temp.SetLeft(5); temp = temp.GetLeft(); cout << tem->GetInfo(); 树温度(5); 树*tem=&temp; 温度设置信息(10); 温度设定值(5); temp=temp.GetLeft();
Tree temp(5);
Tree* tem = &temp;
temp.SetInfo(10);
temp.SetLeft(5);
temp = temp.GetLeft();
cout << tem->GetInfo();
树温度(5);
树*tem=&temp;
温度设置信息(10);
温度设定值(5);
temp=temp.GetLeft();
coutgetinfo();
希望tem会指向树的头部,但它只是跟随temp。。
有没有一种方法可以轻松做到这一点
你们能帮我上课吗?
我很难将指针和类结合起来:
谢谢
希望tem会指向树的头部,但它只是跟随temp
当然,它将指向temp
,因为这里:
Tree* tem = &temp;
您可以用temp
的地址分配它。然后
temp = temp.GetLeft();
您可以更改temp
,并将其留给孩子们。但是tem
仍然指向temp
,这就是您得到此结果的原因
我看不出有任何理由对其左子项更改temp
。我可以建议你声明一个新的变量,它将容纳一个左撇子
但首先:
你必须重写你的课程,它有很多错误。至少-内存泄漏。如果你已经(自己)分配了内存,你必须手动释放它
取而代之的是,使用智能指针,不要使用带有Tree*
的构造函数作为参数。这可能很危险
因此:
一次学完所有的东西真是太好了但这不起作用
- 学习如何使用指针(与使用类分开)
- 学习如何使用类(与使用指针分开)
- 一起学习指针和类
树
对象,并将其分配给左子对象。那么,你可以单独使用它。我实际上不能这样做。S:有没有一种方法可以只使用一个树对象来实现这一点(当我说我不能,这是因为我使用递归函数,我只需要处理一个树对象(在这个函数中同时使用左和右将是一件痛苦的事情))@NaorHadar,另外,最好展示一下,你想解决什么问题。也许存在一个更简单的解决方案。
temp = temp.GetLeft();