好的,我知道这个问题有数百万种变化,我已经(绝望地)尝试了解所有问题,看看它们是否适用,但无济于事。
目前我正在尝试在头文件中声明一个双端队列,该死的东西不会让我因为提到的错误。在我的很多项目中都发生了同样的事情,我认为它只是我对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
}
对任何可以提供帮助的人 - 提前感谢!当我明白这里的错误时,我会非常高兴!!!
答案 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)
当您声明namespace
和card.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,这似乎很方便,但最终会给你带来麻烦。