Хорошо, я знаю, что есть миллионы вариантов этой конкретной проблемы, и я попытался (отчаянно) пройти через все их и посмотреть, применимы ли они, но безрезультатно.ISO запрещает объявление «идентификатора» без типа.
В настоящее время я пытаюсь объявить deque в файле заголовка, и проклятая вещь не позволит мне из-за упомянутой ошибки. То же самое происходит со мной во многих моих проектах, и я думаю, что это просто что-то основное, что мне не хватает в синтаксисе класса C++.
main.cpp
#include <iostream>
#include <fstream>
#include <string>
#include <deque>
#include "Card.h"
#include "random.h"
using namespace std;
void createloop();
int get_option();
deque <Card> make_new_deck();
deque <Card> load_new_deck();
int main()
{
createloop();
return 0;
}
Я havn't показал оставшуюся часть файла ради ясностей, и им довольно уверенно оно не проблема. Ошибка возникает в Card.h:
Card.h
#ifndef CARD_H
#define CARD_H
class Card
{
public:
Card();
deque<string> param_name_deque;
deque<double> param_value_deque;
virtual ~Card();
protected:
private:
};
#endif // CARD_H
card.cpp
#include "Card.h"
Card::Card()
{
//ctor
}
Card::~Card()
{
//dtor
}
всем, кто может помочь - спасибо заранее! Я буду очень рад, если пойму, что здесь неправильно!
ahhhh забыл написать «using namespace std»! Полностью забыл, что вам нужно было определить ваше пространство имен в файлах haeder - ошеломляюще глупо от меня. –
@OwenMcConnell - не писать 'using namespace std;' правильно. То, что вы забыли, состоит в том, чтобы квалифицировать имена с помощью 'std ::'. Не входите в привычку взрывать все в глобальное пространство имен; есть веские причины иметь эти вещи в своем собственном пространстве имен. –