in C++;從派生類通過未覆蓋的基類調用函數
即使函數未被覆蓋,是否有從派生類通過基類 調用函數的方法?換句話說,我在 中使用了一個基類,以便讓異構容器沒有提升;我想打電話給一個成員函數 是隻有特定的派生類...
例子: (我剛纔提出這個代碼了所以有可能是一個語法錯誤,但希望你得到的要點)
class Vehicle
{
public:
virtual void do_vehicle_stuff();
// virtual void do_car_specific_stuff(); makes no sense here
}
class Car : public Vehicle
{
public:
void do_vehicle_stuff();
void do_car_specific_stuff();
}
Car a,b;
list<Vehicle> vehicle_list;
vehicle_list.push_back(a);
vehicle_list.push_back(b);
vehicle_list.front().do_car_specific_stuff();
錯誤:「車輛類別」中有一個名爲「do_car_specific_stuff)(」
這可能幫助:http://stackoverflow.com/questions/28002/regular-cast-vs-static-cast-vs-dynamic-cast – chris
當然,它要抽象的東西來了解具體事情的細節是沒有意義的? –
我知道下面的pmr片段切片,但無法找到一個適當的解決方法.. – user1871298