Klasa abstrakcyjna a dziedziczenie - warningi
Ostatnio zmodyfikowano 2019-01-07 08:37
Anim Temat założony przez niniejszego użytkownika |
Klasa abstrakcyjna a dziedziczenie - warningi » 2019-01-06 23:34:24 Cześć, piszę projekt, w którym chciałbym użyć klasy abstrakcyjnej. Jednocześnie od kiedy używam nowego Qt 5.11 jako IDE z kompilatorem dla standardu 11, to trudno mi pisać kod, bez jakichkolwiek warningów - co jest strasznie irytujące. Jednocześnie walka z ostrzeżeniami pozwala na zdobycie dodatkowej wiedzy...Jednak do meritum, w poniższym kodzie: #include <iostream>
using namespace std;
class A { public: virtual void method() = 0; virtual ~A() { std::cout << "~Klasa A\n"; } };
class B : public A { public: B() { std::cout << "Klasa B\n"; } ~B() override { std::cout << "~Klasa B\n"; } virtual void method() override { std::cout << "Metoda!!!" << std::endl; } };
int main() { B obiekt; obiekt.method(); return 0; }
,otrzymuję następujące warningi: main.cpp:5: ostrzeżenie: 'A' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit main.cpp:12: ostrzeżenie: 'B' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit
Co jest nie tak w powyższym kodzie? I czy to ostrzeżenie jest "krytyczne" :) ? Dziękuję za pomoc. |
|
pekfos |
» 2019-01-06 23:58:28 |
|
Anim Temat założony przez niniejszego użytkownika |
» 2019-01-07 08:37:54 Czytałem tą odpowiedź wcześniej - żeby nie było, że nie potrafię przeszukiwać forum ;p Jednak nie rozumiałem tej odpowiedzi... O 8.00 lepiej się myśli aniżeli o 24. Dziękuję...do zamknięcia :D |
|
« 1 » |