首页 > 解决方案 > 在 C++ 中每次都使用 ::

问题描述

好的,所以我是 C++ 的新手,因为我来自 C 和 Java,所以一个简单的问题。我有以下名为Engine.h的标头(代码来自使用 C++ 制作游戏的教程):

#ifndef TWITCH_ENGINE
#define TWITCH_ENGINE

#include "GLFW/glfw3.h"
#pragma comment (lib, "opengl32.lib")

class Engine
{
public:
    static int SCREEN_WIDTH;
    static int SCREEN_HEIGHT;

    Engine();
    ~Engine();

    bool initialize(char *windowTitle);

private:

};

#endif

和源文件Engine.cpp

#include "Engine.h"

int Engine::SCREEN_WIDTH = 1024;
int Engine::SCREEN_HEIGHT = 768;

Engine::Engine() {


}

Engine::~Engine() {


}

bool Engine::initialize(char* windowTitle);

所以问题是,我是否必须每次都写 Engine:: member_name或者有没有办法避免这种情况,也许通过写类似的东西using namespace Engine;?如果是这样,以这种方式编码有什么好处?

标签: c++game-engine

解决方案


简短的回答:是的,你必须这样做。

长答案:using namespace仅适用于命名空间。这里没有惊喜。类不是命名空间。如果将代码移到标题中,这种必要性就会消失,但它还有其他与 C 相同的缺点,因此您可能知道它们。


推荐阅读