C++ C++;如何更改函数中原始变量的值?
即使在执行更新功能时,显示的框也是50x50。我认为当使用指向它的指针时,原始值会改变,但不管怎样,该值只会在函数中改变C++ C++;如何更改函数中原始变量的值?,c++,class,pointers,reference,sfml,C++,Class,Pointers,Reference,Sfml,即使在执行更新功能时,显示的框也是50x50。我认为当使用指向它的指针时,原始值会改变,但不管怎样,该值只会在函数中改变 #include "box.h" box::box() { boxX= 50.0f; boxY= 50.0f; box.setSize(Vector2f(boxX, boxY)); box.setFillColor(Color::Red); } box::~box() { } void box::Update(RectangleS
#include "box.h"
box::box()
{
boxX= 50.0f;
boxY= 50.0f;
box.setSize(Vector2f(boxX, boxY));
box.setFillColor(Color::Red);
}
box::~box()
{
}
void box::Update(RectangleShape plr)
{
*boxXPtr= 550.0f;
*boxYPtr= 550.0f;
box.setSize(Vector2f(boxX, boxY));
}
void box::Draw(RenderWindow & window)
{
window.draw(box);
}
\ifndef BOXP\u H
#定义BOXP_H
#包括
使用名称空间sf;
类BoxP
{
公众:
BoxP();
~BoxP();
受保护的:
矩形盒;
浮箱X;
漂浮四方;
float*boxXPtr=&texBoxX;
float*boxYPtr=&texBoxY;
};
#恩迪夫
我加入了基类的.h并修改了一些内容。仍然有同样的问题
感谢迄今为止的帮助这两个声明
#ifndef BOXP_H
#define BOXP_H
#include<SFML\Graphics.hpp>
using namespace sf;
class BoxP
{
public:
BoxP();
~BoxP();
protected:
RectangleShape box;
float boxX;
float boxY;
float* boxXPtr= &texBoxX;
float* boxYPtr= &texBoxY;
};
#endif
导致实例化新变量,这显然是在隐藏类成员
float* boxXPtr= &texBoxX;
float* boxYPtr= &texBoxY;
是修复程序。显示您的
box.h
文件。什么是textBoxX
和texBoxY
?你能同时展示类声明吗?我们需要一个可以重现bug和帮助的文件,box::Update()
可以看到的boxXPtr
和boxYPtr
在哪里?为什么Box
的构造函数会创建具有相同名称的新局部变量并立即丢弃它们?如果可以粘贴类声明,这将非常有用。我的答案可能是正确的,但声明将证实这一点。当&boxX
可以在任何地方使用时,使用boxXPtr
的原因是什么?在init列表中设置值通常是真正的解决方法;)
boxXPtr= &texBoxX;
boxYPtr= &texBoxY;