Elimizde çoklu kalıtım olsun. He bir ata sınıfın bir metodunu çağırmak isteyelim. Şöyle yaparız.
template<typename... Policies>
struct ComposedType : Object, Policies...
{
virtual void loadData() override {
int arr[] = {
((void)Policies::loadData(), 0)...
};
(void)arr;
}
};
using FlyingCar = ComposedType<Drivable, Flyable>;
C++17 ile şöyle yaparız.virtual void loadData() override {
((void)Policies::loadData(), ...);
}
Sınıfı tanımlamak için şöyle yaparız.using FlyingCar = ComposedType<Drivable, Flyable>;
Hiç yorum yok:
Yorum Gönder