使用c++;并试图",;巢;一些代码 我现在正在尝试在C++中创建一个基本的智力竞赛游戏。

使用c++;并试图",;巢;一些代码 我现在正在尝试在C++中创建一个基本的智力竞赛游戏。,c++,input,namespaces,std,iostream,C++,Input,Namespaces,Std,Iostream,下面的代码在我尝试运行它时抛出了一个错误,如果我不在主类中使用answer(“answer”),而是用实际的代码替换它,那么它就会工作 我想“嵌套”(我不知道技术术语)一些代码,这样我就不必每次都写出来,正如你所看到的,我希望写下任何问题,然后回答(“答案”) #包括“stdafx.h” #包括 #包括 使用名称空间std; int main() { cout在main中使用函数之前,您需要提供函数问题的声明。添加 void question(string answer); < >在代码定义>

下面的代码在我尝试运行它时抛出了一个错误,如果我不在主类中使用answer(“answer”),而是用实际的代码替换它,那么它就会工作

我想“嵌套”(我不知道技术术语)一些代码,这样我就不必每次都写出来,正如你所看到的,我希望写下任何问题,然后回答(“答案”)

#包括“stdafx.h”
#包括
#包括
使用名称空间std;
int main()
{

cout在
main
中使用函数之前,您需要提供函数
问题的声明。添加

void question(string answer);

< >在代码定义>主< /代码> .< /p> C++之前,必须先声明函数(注释,定义也是声明),但在函数

之前没有提到函数<代码>问题< /代码>
question("Orange");
当它实际尝试被调用时。添加声明:

void question(string answer);

int main()
{
    // the rest of code ...
看起来你想做一个函数。我能帮忙吗

-克里比(1997-2007年RIP)

有两种方法可以做到这一点。一种是在第一次使用前转发declare
question

void question(string answer);

int main()
{
    ...
    question("Orange")
    ...
}

void question(string answer)
{ ... }
void question(string answer)
{ ... }

int main()
{
    ...
    question("Orange")
    ...
}
转发声明是对编译器的一种承诺,即
问题
将在其他地方完全定义,可能稍后在本文件中,可能在另一个文件中,可能在库中。但它必须在某个地方定义,否则程序将编译,但它不会链接

另一个是在第一次使用之前对问题进行全面定义

void question(string answer);

int main()
{
    ...
    question("Orange")
    ...
}

void question(string answer)
{ ... }
void question(string answer)
{ ... }

int main()
{
    ...
    question("Orange")
    ...
}
我更喜欢第二种方法,因为不可能落入这样的陷阱:

void question(int answer);

int main()
{ 
    ...
    question(42)
    ...
}

void question(string answer)
{ ... }

更改问题的前向声明并忘记更改定义会导致链接器错误。

您忘记声明函数,可以在main之前声明,也可以在main之前编写整个函数。

您需要在main之前添加:


void question(字符串值);

运行时出现的错误是什么?这是一个正向声明,绝对不是“define”[iteration]我总是把定义/声明术语倒过来。我只是查了一下,以确保它仍然是倒过来的。糟糕的互联网。糟糕的。糟糕的。修复。在Clippy我们相信哦,Jeeze。你找到了还是做了那个,@Cheersandhth.-Alf?