0

然而,我是一个精通 csharp 的初学者 c++ 程序员。

对于我的任务,我们必须创建一个基于文本的迷宫游戏,到目前为止,我有一个头文件,其中包含方向声明和设置方向 N、S、W、E 的方法

我主要有gets 和sets 来设置房间可以进入的方向。下面是代码示例,我包含了每个语句中的一个来缩短长度,即只有南get 和sets。

void Room::setS(Room* nextRoom)
{
south = nextRoom;
}

Room* Room::gS(){return south;}

Room* A = new Room("A");
Room* B = new Room("B");

A->setE(B);
A->setS(E);

Room* myPosistion = A;
string location = *myPosistion->gName();

while(location !="L")
{
    cout << "You are In Room "<< location << endl;
    }

在 while 循环中,我需要能够访问 Room::Methods,(Room::gS()),所以类似于

if(location->gS() == NULL
//do nothing
else 
{
  cout<<"1. South"<<endl;
}

问题是,我无法获取位置变量来访问 Room:: 方法,我知道我错过了一些非常基本的东西,但就是无法理解它。

谢谢您的帮助

4

1 回答 1

1

您需要使用指向对象的指针而不是包含名称的字符串

尝试更多的东西:

while(myPosistion->gName().compare("L") != 0 )
{
    cout << "You are In Room "<< myPosistion->gName() << endl;
    if( myPosistion->gS() != NULL )
    {
        cout << "1. South : "<< myPosistion->gS()->gName() << endl;
    }
    //TODO some processing here!
}

当您使用位置变量 ( string) 时,您对对象的引用

于 2013-04-07T16:15:56.680 回答