ISO禁止声明没有类型的“标识符”。

时间:2013-04-10 01:35:57

标签: c++ types header iso

好的,我知道这个问题有数百万种变化,我已经(绝望地)尝试了解所有问题,看看它们是否适用,但无济于事。

目前我正在尝试在头文件中声明一个双端队列,该死的东西不会让我因为提到的错误。在我的很多项目中都发生了同样的事情,我认为它只是我对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;
}

为了清楚起见,我没有显示文件的其余部分,我非常有信心这不是问题。错误出现在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
}

对任何可以提供帮助的人 - 提前感谢!当我明白这里的错误时,我会非常高兴!!!

2 个答案:

答案 0 :(得分:6)

你必须在头文件card.h中包含std :: deque和std :: string

#include <string>
#include <deque>

同时,

deque<string> param_name_deque;
deque<double> param_value_deque;

应该是

std::deque<std::string> param_name_deque;
std::deque<double> param_value_deque;

答案 1 :(得分:3)

当您声明namespacecard.h时,您需要在param_name_deque中指定param_value_deque

std::deque<std::string> param_name_deque;
std::deque<double> param_value_deque;

并包含正确的标题:

#include <string>
#include <deque>

我会避免using namespace std,这似乎很方便,但最终会给你带来麻烦。