2

好的,我知道这个特定问题有数百万种变体,我已经(拼命地)尝试过所有这些,看看它们是否适用,但无济于事。

目前我正在尝试在头文件中声明一个双端队列,由于提到的错误,该死的东西不会让我这样做。在我的很多项目中,同样的事情发生在我身上,我认为这只是我对 c++ 类语法知识缺乏的基本知识。

主文件

#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 中:

卡片.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

卡片.cpp

#include "Card.h"


Card::Card()
{
    //ctor
}

Card::~Card()
{
    //dtor
}

任何可以提供帮助的人 - 在此先感谢!当我明白这里有什么问题时,我会很高兴!!!

4

2 回答 2

6

您必须在头文件中包含 std::deque 和 std::stringcard.h

#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;
于 2013-04-10T01:38:42.670 回答
3

声明and时需要指定namespacein :card.hparam_name_dequeparam_value_deque

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

并包括正确的标题:

#include <string>
#include <deque>

我会避免使用命名空间 std,它可能看起来很方便,但最终会给你带来问题。

于 2013-04-10T01:39:14.257 回答