在 C++ 中每次都使用 ::
Using :: everytime in C++
好吧,我是 C++ 的新手,因为我来自 C 和 Java,这是一个简单的问题。我有以下 header 称为 Engine.h(代码来自 tutorial to make games with 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
仅适用于名称空间。这里不足为奇。 class 不是命名空间。如果将代码移至 header,这种必要性就会消失,但它还有其他与 C 中相同的缺点,因此您可能知道它们。
好吧,我是 C++ 的新手,因为我来自 C 和 Java,这是一个简单的问题。我有以下 header 称为 Engine.h(代码来自 tutorial to make games with 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
仅适用于名称空间。这里不足为奇。 class 不是命名空间。如果将代码移至 header,这种必要性就会消失,但它还有其他与 C 中相同的缺点,因此您可能知道它们。