gpt4 book ai didi

c++ - 错误 C2065 : 'nowhere' : undeclared identifier

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:31 25 4
gpt4 key购买 nike

因此,我尝试使用 Visual Studio 2010 在 C++ 中制作基于文本的游戏。以下是我认为相关的一些代码块。如果您还需要,请随时问我。

我正在尝试为一个名为 places 的游戏创建一个类。我造了一个地方,它的北、南、东、西各有一个“地方”。我现在真的很困惑。我对这东西一窍不通。我可能只是在看东西。

//places.h------------------------
#include "place.h"

//Nowhere place
string nowheredescr = "A strange hole to nowhere";
place nowhere(&nowheredescr, &nowhere, &nowhere, &nowhere, &nowhere); //Error occurs here
//

//place.h------------------------
#ifndef place_h
#define place_h

#include "classes.h"

class place
{
public:
place(string *Sdescription, place *Snorth, place *Ssouth, place *Swest, place *Seast);
~place(void);
private:
string *description;
place *north;
place *south;
place *east;
place *west;
};

#endif

//place.cpp-------------------
#include "place.h"
#include <iostream>


place::place(string *Sdescription, place *Snorth, place *Ssouth, place *Swest, place *Seast)
{
description = Sdescription;
north = Snorth;
south = Ssouth;
west = Swest;
east = Seast;
}


place::~place(void)
{
}

最佳答案

以下语法可以解决错误

place nowhere = place(&nowheredescr, &nowhere, &nowhere, &nowhere, &nowhere);

这在 C++03 标准 3.3.1/1 中有解释

The point of declaration for a name is immediately after its complete declarator (clause 8) and before its initializer (if any)

在 OP 示例中,place nowhere(.....) 表示声明符,因此用作构造函数参数的 nowhere 被视为未声明。在我的示例中,place nowhere 是一个声明符,place(.....) 是一个初始化器,因此 nowhere 成为声明符点。

关于c++ - 错误 C2065 : 'nowhere' : undeclared identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963136/

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