gpt4 book ai didi

c++ - 初学者 C++、指针和继承错误

转载 作者:行者123 更新时间:2023-11-28 07:41:03 25 4
gpt4 key购买 nike

不过,我是一名精通 csharp 的初学者 c++ 程序员..

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

主要是我有 gets 和 sets 来设置房间可以进入的方向。下面是我包含的每个语句之一的代码示例,以缩短长度,即只有 south 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::方法的位置变量,我知道我缺少一些非常基本的东西,但就是无法理解它..

感谢帮助

最佳答案

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

尝试更多的内容:

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)时,您就是对对象的引用

关于c++ - 初学者 C++、指针和继承错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863422/

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