我上課是這樣的:C++派生類重寫與其他派生類的基類成員?
class ParkingLot
{
public:
int spaces;
virtual bool something() { return true; }
}
class ParkingLotBuilding
{
public:
ParkingLot Floor1, Floor2;
}
我做過了很多的採取ParkingLotBuilding功能。比方說,某人(我)從ParkingLot派生和ParkingLotBuilding:
class DerivedParkingLot : public ParkingLot
{
public:
virtual bool something() { return false; }
}
class DerivedParkingLotBuilding : public ParkingLotBuilding
{
public:
// how can I make it so that Floor1 and Floor2 are for DerivedParkingLot?
}
我有功能我不控制是這樣的:
CheckBuilding(ParkingLotBuilding &building)
{
if(building.Floor1.something() == true)
// error
}
如果我通過一個DerivedParkingLotBuilding對象到功能我如何使它調用DerivedParkingLot :: something()來返回false?那可能嗎?對不起,如果我沒有解釋這個權利,我不知道如何問這個問題。謝謝
您不能覆蓋成員,只有方法 – UnknownError1337
添加到JohnSmith所說的內容中:由於'ParkingLotBuilding'包含'ParkingLot'值,而不是'ParkingLot'指針或引用,因此即使在DerivedParkingLot中也不能使用多態。 – zindorsky
@zindorsky我認爲這是正確的答案。如果您或約翰想將其作爲答案提交併解釋,我會將其標記爲正確。 – user2672807