dynamic_cast vs ujawnianie funkcji wirtualnych w klasie nadrzędnej (C ++)
Mam klasę macierzystą „base” i inną klasę „wyprowadzoną”, która dziedziczy z „bazy”.
„pochodna” ma 1 metodę cH1.
jeśli to zrobię:
base* b = new derived();
I chcę móc to zrobić:
b->cH1();
Oczywiście nie mogę i są 2 rozwiązania:
Albo zadeklaruj cH1 jako czysty wirtualny w bazie.lub zrób to:
dynamic_cast<derived*>(b)->cH1();
Która z nich jest lepszą praktyką?