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

Pure virtual function (czysta funkcja wirtualna?)

Ostatnio zmodyfikowano 2012-03-16 23:06
Autor Wiadomość
akwes
Temat założony przez niniejszego użytkownika
Pure virtual function (czysta funkcja wirtualna?)
» 2012-03-16 21:10:23
C/C++
#ifndef Drawer_H
#define Drawer_H
class Drawer {
public:
    virtual void Draw() = 0;
};
#endif

Hm... Co oznacza tutaj przypisanie do funkcji wartości 0?

P-52724
yoogi
» 2012-03-16 21:49:26
dobre pytanie, też mnie to ciekawi :)
P-52729
akwes
Temat założony przez niniejszego użytkownika
» 2012-03-16 23:06:20
In C++, pure virtual functions are declared using the pure specifier (= 0), as demonstrated below.

C/C++
class Abstract {
public:
    virtual void pure_virtual() = 0;
};
The pure virtual function declaration provides only the prototype of the method. Although an implementation of the pure virtual function is typically not provided in an abstract class, it may be included, although the definition may not be included at the point of declaration. Every non-abstract child class is still required to override the method, but the implementation provided by the abstract class may be called in this way:

C/C++
void Abstract::pure_virtual() {
    // Do something
}

class Child
    : public Abstract
{
    virtual void pure_virtual(); // no longer abstract, this class may be
    // instantiated.
};

void Child::pure_virtual() {
    Abstract::pure_virtual(); // the implementation in the abstract class
    // is executed
}
P-52738
« 1 »
  Strona 1 z 1