Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Klasa abstrakcyjna a dziedziczenie - warningi

Ostatnio zmodyfikowano 2019-01-07 08:37
Autor Wiadomość
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:

C/C++
#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.
P-173444
pekfos
» 2019-01-06 23:58:28
P-173445
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
P-173446
« 1 »
  Strona 1 z 1