Cześć
Jako że kod mówi więcej, niż 1000 słów oto on:
#include <iostream>
struct C {
virtual ~C() {}
};
struct D : C {
virtual ~D() {}
};
struct A {
virtual void test(C *c) = 0;
};
struct B : A {
//void test(C *d) {}
void test(D *d) { std::cout << "B::D\n"; }
};
int
main(int argc, char **argv)
{
B a;
a.test(new D());
return 0;
}
W C++ przy klasach abstrakcyjnych ich implementacje w klasach pochodnych muszą być dokładnie tego samego typu?
Ehh, z jakiegoś powodu wklejony kod wygląda jak wygląda.