c++ - 在 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;
?如果是这样,以这种方式编码有什么好处?
解决方案
简短的回答:是的,你必须这样做。
长答案:using namespace
仅适用于命名空间。这里没有惊喜。类不是命名空间。如果将代码移到标题中,这种必要性就会消失,但它还有其他与 C 相同的缺点,因此您可能知道它们。