gpt4 book ai didi

c++ - C++ 中的外部链接

转载 作者:搜寻专家 更新时间:2023-10-31 01:00:00 24 4
gpt4 key购买 nike

我正在制作一个处理扑克手牌和概率的简单程序。我在不同的手上运行测试用例,在我的程序中,我需要一个套牌来绘制我的手,它是恒定的和全局的。我的程序包含三个主要对象:Card、Hand 和 Deck。我正在尝试创建一个全局甲板,但似乎无论我做什么我都会收到一条错误消息,指出 globalDeck 在 hand.cpp 中未定义。相关代码如下:

手.cpp:

Hand::Hand(int &one, int &two, int &three, int &four, int &five)
{
cardsinHand.push_back(globalDeck.copy(one));
cardsinHand.push_back(globalDeck.copy(two));
cardsinHand.push_back(globalDeck.copy(three));
cardsinHand.push_back(globalDeck.copy(four));
cardsinHand.push_back(globalDeck.copy(five));
}

和我的 cardgames.cpp 文件:

#include "stdafx.h"
#include<iostream>
#include "hand.h"
using namespace std;

Deck globalDeck;

void printresults(long successes, long trials)
......

注意:我已经尝试用 extern Deck globalDeck、extern const globalDeck 等替换 Deck globalDeck。似乎没有什么可以让 globalDeck 在 hand.cpp 中定义。此外,牌组在整个程序中将保持不变,因此可以将其声明为全局常量或全局变量,以更容易的为准。我的错误输出是:

1>c:\users\\desktop\semesters past\winter 2013\computer programming\projects\cardgames\cardgames\hand.cpp(31): error C2065: 'globalDeck' : undeclared identifier
1>c:\users\\desktop\semesters past\winter 2013\computer programming\projects\cardgames\cardgames\hand.cpp(31): error C2228: left of '.copy' must have class/struct/union
1> type is 'unknown-type'

最佳答案

在一个头文件中声明你的全局变量

extern Deck globalDeck;

在cardgames.cpp中定义它

Deck globalDeck;

说明:编译器必须在您使用它之前查看globalDeck 是什么。并且编译器主要单独处理每个 *.cpp,而不查看其他文件。在头文件中,您可以说出程序中有哪些内容,而无需给出完整且唯一的定义。

关于c++ - C++ 中的外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32161819/

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