【发布时间】:2015-08-10 14:46:39
【问题描述】:
我正在设计一个类,它有一个由同一类对象的指针组成的向量对象。
例如:
#include <vector>
using namespace std;
class X
{
private:
vector<X*> _neighbors;
};
我想使用typedef 语句来缩短我的工作,但我也想在类声明之外使用它,例如在另一个类中。我应该在哪里写typedef 声明?在类声明之前?之后呢?
【问题讨论】:
-
typedef的 what ?另外,请不要use namespace std;,尤其是在标题中。 -
@Quentin,
typedefforvector<*x>,为什么我不应该使用using namespace std? -
因为您将标准名称空间的整个喇叭内容转储到全局名称空间中,名称冲突等等。如果您在标题中执行此操作,您将在 用户的 代码上执行此操作。
-
'using namespace std' in a header file 将其强制传递给包含您的标头的每个人。不强制它的原因是添加“std::”命名空间的确切原因——防止命名冲突。在您的实现文件(cpp/cxx/whatever)中随意使用您自己的约定。
-
@Quentin,好的,所以我不会使用它。这很奇怪/有趣,因为默认的 hello world 就像我一样使用它。我想我是从那里捡来的