【发布时间】:2015-08-05 13:13:54
【问题描述】:
我正在尝试在我正在编写的一些代码中获得良好的结构,但我不太确定头文件。我遇到的问题之一是:我知道我不应该在头文件中包含命名空间,但我不知道该放在哪里。
考虑这个标题:
// deck.h
#pragma once
#include <vector>
#include "card.h"
using namespace std;
typedef vector<card> pile;
class deck{
public:
deck();
~deck();
void shuffle();
card takeCard();
int getSize();
private:
pile cDeck;
};
card.h 中的代码是卡片结构的定义。 typedef 甚至应该在头文件中吗?如果是这样,我该如何避免使用 std::vector?
任何提示都会被应用。
【问题讨论】:
-
using namespace std;在头文件中是一个非常糟糕的主意! -
你不应该避开
#include <vector>或std::vector,你只需要避开using namespace std;。 (另外,如果pile类型在类内部,这似乎是个好主意,那么 typedef 应该在类的私有部分中。) -
using std::vector是这里的超级更好的选择!
标签: c++ header namespaces