C++在类之间传递值
我有两个类,Qtree和Qnode: 然后在main.cpp中: 计算结果为0。我预计是100英镑。 我是C++初学者,从谷歌上读到很多相关的东西。然而,我们仍然不知道如何让它发挥作用 如何解决此问题?您需要更改setRoot,以便它通过引用获取参数C++在类之间传递值,c++,pointers,reference,C++,Pointers,Reference,我有两个类,Qtree和Qnode: 然后在main.cpp中: 计算结果为0。我预计是100英镑。 我是C++初学者,从谷歌上读到很多相关的东西。然而,我们仍然不知道如何让它发挥作用 如何解决此问题?您需要更改setRoot,以便它通过引用获取参数 void QTree::setRoot(QNode &q){ q.bound = bound; } 您的代码是按值传递的,因此setRoot修改q的副本。根据您的注释,我尝试了serRootQNode*q,主要是执行qt.setR
void QTree::setRoot(QNode &q){
q.bound = bound;
}
您的代码是按值传递的,因此setRoot修改q的副本。根据您的注释,我尝试了serRootQNode*q,主要是执行qt.setRoot&q;,它是有效的。你的建议也很有效。我的建议和你的建议有什么不同吗?它们基本上是一样的。传递引用更方便,因为您只需将它写入一个地方,就不必记住使用和在所有调用函数的地方。使用指针是C方式来实现它,C++使引用变得更简单。
//Quadtree.cpp:
#include "QuadTree.hpp"
QTree::QTree(){
bound = sf::Vector2f(100,200);
}
void QTree::setRoot(QNode q){
q.bound = bound;
}
#include <iostream>
#include <SFML/Graphics.hpp>
#include "QuadTree.hpp"
using namespace std;
int main(){
QTree qt;
QNode q;
qt.setRoot(q);
cout << q.bound.x <<endl;
}
void QTree::setRoot(QNode &q){
q.bound = bound;
}