gpt4 book ai didi

c++ - 默认构造函数中未识别的标识符

转载 作者:行者123 更新时间:2023-11-28 06:57:03 25 4
gpt4 key购买 nike

我一直在网上搜索如何解决这个问题。还尝试将所有内容公开,但我认为这不是问题所在。这是我的 header 代码:

#ifndef DEALER_HPP
#define DEALER_HPP

#include <queue>

class Dealer{
private:
queue<pair<int, char>> deck;

public:
Dealer(); // default constructor
~Dealer(); // destructor
};

#endif

源文件:

#include "Dealer.hpp"

using namespace std;

Dealer::Dealer(){// create unshuffled deck
const char* suitValue[4] = {"c", "d", "h", "s"};

for (int i = 2; i <= 14; i++)
{
for (int j = 1; j <= 4; j++)
{
deck.push(pair<int, char> (i, suitValue[j])); // error on this line
}
}
}

我的源文件中有一个错误,

identifier "deck" is unidentified.

知道如何解决吗?我也试过使用 make_pair 但没有成功。我真的觉得我的代码应该可以工作,我敢肯定有一些简单的错误。抱歉,我无法解决这个问题。

最佳答案

首先你需要#include <utility>deck 的声明应该是:

std::queue< std::pair<int, char> > deck;

这可能是您的错误来源,尽管该特定行也应该有错误消息。

继续,这对是一对 intchar .但是你稍后写:

pair<int, char> (i, suitValue[j])

suitValue[j]char * , 不是 char .所以这也一定会产生一个编译器错误。我猜你想要 std::string而不是 charconst char *在这两个地方。

此外,您在 j 中越界访问环形。对于维度数组 4 , 有效索引为 0 1 2 3 .不是4 .

关于c++ - 默认构造函数中未识别的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com