C++ 仅在编辑另一个类后编译更改

C++ 仅在编辑另一个类后编译更改,c++,sfml,C++,Sfml,所以我有一个奇怪的问题- 我使用C++的SFML,我想编辑一个游戏屏幕(我创建了一个屏幕类,它是由不同的层次和屏幕的游戏派生的),但是奇怪的是当我改变类中的东西(例如,如果我试图改变精灵的像素移动率),并且我编译和运行程序时,我绝对看不到任何改变。但是,如果我以后更改另一个类(不管哪个类,任何类都可以工作),那么我将看到我创建的游戏屏幕中的更改。。。 我真的不知道这里有什么问题,所以我请求你的帮助 顺便说一句,如果重要的是类(没有标题,只有.cpp) #包括“Screen.hpp” #包括“Sp

所以我有一个奇怪的问题- 我使用C++的SFML,我想编辑一个游戏屏幕(我创建了一个屏幕类,它是由不同的层次和屏幕的游戏派生的),但是奇怪的是当我改变类中的东西(例如,如果我试图改变精灵的像素移动率),并且我编译和运行程序时,我绝对看不到任何改变。但是,如果我以后更改另一个类(不管哪个类,任何类都可以工作),那么我将看到我创建的游戏屏幕中的更改。。。 我真的不知道这里有什么问题,所以我请求你的帮助

顺便说一句,如果重要的是类(没有标题,只有.cpp)

#包括“Screen.hpp”
#包括“Sprite.hpp”
#包括
使用名称空间sf;
类游戏屏幕:公共rce::屏幕
{
私人:
rce::精灵s;
公众:
GameScreen():Screen()
{
}
空荷载()
{
s、 SetImage(“circle.png”);
}
无效卸载()
{
}
无效更新()
{
s、 SetX(s.GetX()+1);
}
作废提款()
{
s、 Draw();
}
};

如果使用C/C++处理多个文件,C/C++编译器将编译每个*.C或*cpp文件,并在某些编译器中使用*.o或*obj文件。然后链接器将它们链接在一起。当您重新编译一个特殊文件时,您应该编译它的依赖项。

这可能很愚蠢,但您确定程序得到了完全编译吗?例如,如果你正在编写自己的MaxFrm文件,你确定你已经做出了正确的依赖关系吗?我使用Visual C++快件2010…我相信程序已经完全编译好了,尽管我担心这可能是问题所在。但不确定:OIt不应该是他们的问题,但无论如何,尝试更改您的类并进行完整重建,看看这是否解决了问题。已经实际尝试过了。。。未执行任何操作:(尝试全部重建,并且确保“附加库目录”列表中每个文件夹中的所有
.lib
文件都已擦除(除非它们是外部库)。然后转到生成
.exe
的文件夹(检查文件创建时间)然后直接运行
.exe
文件。
#include "Screen.hpp"
#include "Sprite.hpp"
#include <iostream>

using namespace sf;

class GameScreen : public rce::Screen
{
private:
    rce::Sprite s;

public:
    GameScreen() : Screen()
    {
    }

    void Load()
    {
        s.SetImage("circle.png");
    }

    void Unload()
    {
    }

    void Update()
    {
        s.SetX(s.GetX()+1);
    }

    void Draw()
    {
        s.Draw();
    }
};