C++ setRoomName不会更改变量roomName
我从一个文本文件中获取房间,并试图使用变量中的信息,因此我在获取信息后将其添加到链接列表中,通过房间id搜索我想要的房间,然后使用setRoomName=找到房间名称。但这不起作用。。。有人看到问题了吗 这是我的密码:C++ setRoomName不会更改变量roomName,c++,setter,C++,Setter,我从一个文本文件中获取房间,并试图使用变量中的信息,因此我在获取信息后将其添加到链接列表中,通过房间id搜索我想要的房间,然后使用setRoomName=找到房间名称。但这不起作用。。。有人看到问题了吗 这是我的密码: #include "Rooms.h" #include "DoublyLinkedList.h" #include <string> using namespace std; DoublyLinkedList<Rooms> roomsList; Doub
#include "Rooms.h"
#include "DoublyLinkedList.h"
#include <string>
using namespace std;
DoublyLinkedList<Rooms> roomsList;
DoublyLinkedListIterator<Rooms> itr = roomsList.getIterator();
Rooms :: Rooms()
{
this->roomID = 0;
this->roomName = "";
this->roomExits = "";
}
Rooms :: Rooms(int roomID,string roomName,string roomExits)
{
this->roomID = roomID;
this->roomName = roomName;
this->roomExits = roomExits;
}
int Rooms :: getRoomID()
{
return roomID;
}
void Rooms :: setRoomID(int roomID)
{
this->roomID = roomID;
}
string Rooms :: getRoomName()
{
return roomName;
}
void Rooms ::setRoomName(string roomName)
{
this->roomName = roomName;
}
string Rooms :: getRoomExits()
{
return roomExits;
}
void Rooms :: setRoomExits(string roomExits)
{
this->roomExits = roomExits;
}
void Rooms :: loadRooms()
{
string fileName = "Rooms\\Rooms.txt";
ifstream infile(fileName);
string garbage;
int loadRoomID;
string loadRoomName1;
string loadRoomName2;
string loadRoomExits;
while(infile >>garbage >> garbage >> loadRoomID >> garbage >>
garbage >> garbage >> loadRoomName1 >> loadRoomName2 >> garbage
>> garbage >> loadRoomExits)
{
cout << "Room ID: \t\t"<< loadRoomID << "\n";
cout << "Room Name: \t\t"<< loadRoomName1 <<" " << loadRoomName2 << "\n";
cout << "Room Exits: \t\t" << loadRoomExits <<"\n";
string loadRoomName = loadRoomName1 + loadRoomName2;
Rooms r1 (loadRoomID,loadRoomName,loadRoomExits);
roomsList.Append(r1);
}
}
void Rooms :: printRooms()
{
int index = 0;
//Loop through the iterator.
for(itr.Start();itr.Valid();itr.Forth())
{
index++;
cout << "------------------Rooms------------------\n";
cout << "--------------------------------\n";
cout << "Position:\t\t" << index << "\n";
cout << "--------------------------------\n";
cout << "Room ID:\t\t" << itr.Item().getRoomID() << "\n";
cout << "Room Name:\t\t" << itr.Item().getRoomName() << "\n";
cout << "Room Exits:\t\t" << itr.Item().getRoomExits() << "\n";
cout << "------------------------------------------\n";
}
cout << "Rooms: \t\t" << roomsList.getCount() << "\n";
}
string Rooms :: searchByRoomID(int searchByID)
{
//Loop through the Iterator.
for (itr.Start(); itr.Valid(); itr.Forth())
{
//If the object entered has the same first name as the one in the loop.
if (itr.Item().getRoomID() == searchByID)
{
//Print out the details from the list.
cout << "------------------------------------------\n";
cout << "Room ID:\t\t" << itr.Item().getRoomID() << "\n";
cout << "Room Name:\t\t" << itr.Item().getRoomName() << "\n";
cout << "Room Exits:\t\t" << itr.Item().getRoomExits() << "\n";
cout << "------------------------------------------\n";
setRoomID(itr.Item().getRoomID());
setRoomName(itr.Item().getRoomName());
setRoomExits(itr.Item().getRoomExits());
cout << getRoomID();
cout << getRoomName();
cout << getRoomExits();
}
}
return getRoomName();
}
#包括“Rooms.h”
#包括“DoublyLinkedList.h”
#包括
使用名称空间std;
双链接列表roomsList;
DoublyLinkedListIterator itr=roomsList.getIterator();
房间::房间()
{
此->房间ID=0;
此->roomName=“”;
此->roomExits=“”;
}
房间::房间(int-roomID、string-roomName、string-roomExits)
{
此->房间ID=房间ID;
此->roomName=roomName;
这->roomExits=roomExits;
}
int Rooms::getRoomID()
{
返回室友;
}
无效房间::setRoomID(int roomID)
{
此->房间ID=房间ID;
}
字符串室::getRoomName()
{
返回房间名称;
}
void Rooms::setRoomName(字符串roomName)
{
此->roomName=roomName;
}
字符串室::getRoomExits()
{
返回室出口;
}
无效房间::setRoomExits(字符串roomExits)
{
这->roomExits=roomExits;
}
空房间::装货室()
{
字符串fileName=“Rooms\\Rooms.txt”;
ifstream-infle(文件名);
字符串垃圾;
int loadRoomID;
字符串loadRoomName1;
字符串loadRoomName2;
字符串loadRoomExits;
而(填充>>垃圾>>垃圾>>loadRoomID>>垃圾>>
垃圾>>垃圾>>loadRoomName1>>loadRoomName2>>垃圾
>>垃圾>>装载室出口)
{
我发现的一个错误是,你们是通过id找到一个房间,然后你们把id、名称、出口设置成你们找到的那个样。那个么你们怎么能找到一个变化呢
setRoomID(itr.Item().getRoomID());
setRoomName(itr.Item().getRoomName());
setRoomExits(itr.Item().getRoomExits());
相反,您应该为Example提供一些需要设置的其他值
setRoomID(789);
setRoomName("Room ");
setRoomExits("yes");
在这里,找到的房间的id、名称、出口分别设置为789、“房间”、“是”