Open mariusz-n opened 4 years ago
Akurat tutaj wirtualne metody w klasie bazowej są puste i raczej nic w nich nie będzie, bo ich przeznaczeniem jest przeciążanie w klasie potomnej. Więc niewywołanie ich nie jest groźne i nie popsuje niczego. Gdy zajdzie taka potrzeba to wywołanie się doda. A jesli ktoś będzie przeciążał metody z HapcanDeviceSubModuleHost
to jak najbardziej musi pamiętać o wywołaniu supera. No chyba, że ma inny pomysł na działanie tych metod :).
Jeśli są puste w klasie bazowej, to dlaczego trzeba wywołać supera?
A może nie mówimy o tej samej klasie, bo metody wirtualne klasy HapcanDeviceSubModuleHost nie są puste. Przykład:
virtual void OnInit()
{
for (byte i = 0; i < SubmodulesCount; i++)
{
m_subModules[i]->Init();
}
}
Jeśli czytałeś podanego linka, to wiesz, że to jest problem, a opisałem go, bo sam na niego trafiłem,
Call super Wszystkie metody wirtualne muszą być wywołane z klasy wyprowadzonej. Jeśli się tego nie zrobi, dzieją się złe rzeczy, np. sub-moduły nie zostają zainicjalizowane. Przydałoby się to zrobić inaczej, bezpieczniej.