C++ C++;如何更改函数中原始变量的值?

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

即使在执行更新功能时,显示的框也是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(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;