因此,我正在尝试使用Visual Studio 2010在C++中制作基于文本的游戏。这是我认为相关的一些代码块。如果您需要更多,请随时问我。
我正在尝试为一个名为“地方”的游戏创建一个类。我做了一个地方,它在它的北,南,东和西有另一个“地方”。我现在真的很困惑。我是这个菜的菜鸟。我可能只是在看东西。
//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中进行了解释
在OP示例中,
place nowhere(.....)
表示一个声明符,因此,用作构造函数参数的nowhere
被视为未声明。在我的示例中,
place nowhere
是一个声明器,place(.....)
是一个初始化器,因此nowhere
在此时被声明。关于c++ - 错误C2065: 'nowhere':未声明的标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11963136/