我可以分配一个指针对象数组=另一个对象吗



假设我有一层楼,里面有一定数量的房间。每个房间都是空的。我想给一个空房间打字。我心中有一个已经创建的办公室类型,我想给第一个可用的空房间提供这种办公室类型。

Room* availableRooms[max] {};
Office* mOffice = new Office;
// Values to mOffice are set later so it's not nullptr
for (int i = 0; int i < max; i++) 
{
if (availableRooms[i] == nullptr) // If room is empty set it to the mOffice object
{
[i] = mOffice;
}
}

这是正确的做法吗?

假设OfficeRoom的子类型,这应该有效,但您希望在分配后使用break,否则所有空房间都将指向mOffice,而不仅仅是第一个:

for (int i = 0; int i < max; i++) {
if (availableRooms[i] == nullptr) {
availableRooms[i] = mOffice;
break;
}
}