Я пытаюсь получить хорошую структуру в некотором коде, который я пишу, но я не совсем уверен в файлах заголовков. Одна из проблем, которые у меня есть, заключается в следующем: я знаю, что я не должен включать пространства имен в заголовочные файлы, но я не знаю, где еще это можно сделать.Использование файла заголовка пространства имен C++
Рассмотрим этот заголовок:
// 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 даже находиться в файле заголовка? И ifso, как мне избежать использования std :: vector?
Любые подсказки будут назначены.
'using namespace std;' в файле заголовка - довольно плохая идея! –
Вы не должны избегать '#include' или 'std :: vector', вам нужно избегать' using namespace std; '. (Кроме того, если тип 'pile' является внутренним для класса, что кажется хорошей идеей, typedef должен находиться в закрытом разделе класса.) –
molbdnilo
' using std :: vector' является * супер * лучшим вариантом Вот! – iBug