mamwirtualny desctructor na czystym abstrakcyjnej klasy bazowej
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
};
GCC twierdzi, że mam
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
virtual ~IMyInterface(){};
};
Nie widzę dlaczego. Czysty interfejs dotyczy interfejsu (duh). Destruktor jest częścią wewnętrznych szczegółów implementacji konkretnego implementatora interfejsu; nie stanowi części interfejsu. Rozumiem cały problem związany z krojeniem (a przynajmniej tak myślę)
Moje pytanie brzmi - czy GCC ma prawo nalegać na to, a jeśli tak, dlaczego?
Mówisz o destruktorach, ale twój kod pokazuje konstruktor. O co tu chodzi? –
@mmyers, poprawiono. –
Reguła 1 programowania: Kompilator ma zawsze rację. Zasada 2 programowania: Jeśli kompilator jest niewłaściwy, obowiązuje zasada 1. –