я создал класс под названием Room
следующимКак вернуть указатель на член класса из функции
#ifndef ROOM_H
#define ROOM_H
#include <string>
class Room
{
private:
std::string name;
std::string description;
Room* south;
Room* north;
Room* east;
Room* west;
public:
//CONSTRUCTOR
Room();
Room(std::string name, std::string desc);
//METHODS
std::string getName();
std::string getDescription();
void link(Room *r, std::string direction);
Room *getLinked(std::string direction);
void printLinked();
~Room();
};
#endif // ROOM_H
/******************* ************************************************** ****/
void Room::link(Room *r, std::string direction)
{
if (direction == "south")//THIS IS JUST FOR TEST
{
this->south = this->getName();
}
}
/*************************************************/
Room Room::*getLinked(std::string direction)
{
return south;
}
И вот мой вопрос в getLinked
методе, как я могу вернуть указатель (например, south
, north
, east
, west
)
Правильный синтаксис будет 'номер * номер :: getLinked (направление станд :: строка)'. – Steeve
Можете ли вы попытаться урезать свой вопрос до [MCVE], который воспроизводит вашу проблему, пожалуйста? –
Рассмотрите возможность использования 'const std :: string & direction' в качестве параметров, чтобы избежать ненужного копирования строк. – Steeve