将地址分配给本地指针后,公共对象的变量将消失
The variables of a public object disappear after assigning the address to a local pointer
我有一个名为"方位角方位角(..(";。我想把这个对象给另一个称为"的对象;扫描器扫描(方位(";,通过这种方式,扫描对象可以容易地使用方位对象。";扫描仪";将方位角对象的地址保存到指针。scan对象调用类似scan.scanRoom((的函数。方位角对象可以访问,但指定给它的变量无效(值极高(。是什么原因造成的?我该如何解决这个问题?
代码:
main:
Azimuth azimuth(5,6,2000,7);
ScanAngles scan(sensor,azimuth,elevation);
扫描角度:
class ScanAngles
{
private:
Sensor* sensor;
Azimuth *azimuth;
Elevation *elevation;
public:
ScanAngles(Sensor sensor , Azimuth azimuth, Elevation elevation)
{
this->sensor = &sensor;
this->azimuth = &azimuth;
this->elevation = &elevation;
}
函数:
void ScanAngles::getFullScan(int stepWidth, int stepHeight)
{
Serial.print(this->azimuth->getRotation());
}
调试器的一些图片:
主中的值
在函数中调用时的值
感谢您的帮助和时间!
您按值将对象传递到ScanAngles
构造函数中,因此对象被复制到临时值中,存储指向这些临时值的指针是未定义的行为。
您应该通过引用传递:
ScanAngles(Sensor& sensor , Azimuth& azimuth, Elevation& elevation)
相关文章:
- 将地址分配给本地指针后,公共对象的变量将消失
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 应用投影矩阵后对象消失
- Qt:从另一个窗口访问公共对象
- C++ 在地图上循环 - 消失的对象
- 如何将 c++ 类包装到 python 中,以便我可以使用 pybind11 访问其成员的公共方法(成员是一个对象指针)
- 具有公共内存区域的类似数组的对象
- 具有 std::function 的公共基类的泛型对象
- C++ GLUT 使对象在视口外消失
- 如何将指针分配给功能中的新对象,而不会使该对象在退出后消失
- 面向对象编程 - 位域私有结构的公共参考
- 如何从对象中获取公共常量?
- c++公共对象更改应该调用函数
- 访问 OpenAL 缓冲区的公共对象属性
- 在公共对象文件中分隔调用方
- 如何在QT中为对话框创建公共对象
- 共享公共对象 - 警告"defined but not used"
- OpenGL顶点着色器变换,对象消失
- 如何在类中创建不可变的静态公共对象?
- 删除两个向量中的公共对象/在一个向量中获取重复对象(不是擦除)