C ++成员变量初始化为非零值,但在成员函数中为零

时间:2018-07-01 23:20:32

标签: c++ member-functions member-variables

C ++的新手,我正在尝试为视频游戏制作一个简单的开始屏幕。我希望“开始”屏幕从屏幕底部滚动。为此,我有一些在称为Update的函数中访问的成员变量。我遇到的问题是我在具有非零值的构造函数中初始化了scrollStart。但是,当调用Update时,我打印出scrollStart的y值,它是0。此类中只有一个成员函数不会触及scrollStart,所以我不知道为什么它会重置为零。有谁更熟悉c ++有任何想法为什么会发生这种情况?

我的头文件喜欢这样的东西(不相关的东西已删除):

class StartScreen : public GameEntity 
{
private:
    Vector2 scrollStart;

public:
    void Update();

}; 

我的cpp文件看起来像这样:

StartScreen::StartScreen()
{
    ...

    Vector2 scrollStart = Vector2(SCREEN_WIDTH*0.5f, SCREEN_HEIGHT);
    printf("scrollStart Y: %f\n", scrollStart.y);   // prints 868 as it should
}

StartScreen::Update()
{
    printf("scrollStart Y: %f\n", scrollStart.y);  // prints 0
}

0 个答案:

没有答案