override ( C++11)
cppreference.com
| -- () - () | (1) | ||||||||
| -- () - | (2) | ||||||||
2) -
override -- -. --, , override, final, final override, override final.
- override , . ( ), .
override , -: .
#include <iostream>
struct A
{
virtual void foo();
void bar();
virtual ~A();
};
// - A:
void A::foo() { std::cout << "A::foo();\n"; }
A::~A() { std::cout << "A::~A();\n"; }
struct B : A
{
// void foo() const override; // : B::foo A::foo
// ( )
void foo() override; // OK: B::foo A::foo
// void bar() override; // : A::bar
~B() override; // OK: `override`
// -,
void override(); // OK, -,
};
// - B:
void B::foo() { std::cout << "B::foo();\n"; }
B::~B() { std::cout << "B::~B();\n"; }
void B::override() { std::cout << "B::override();\n"; }
int main() {
B b;
b.foo();
b.override(); // OK, - `override()`
int override{42}; // OK,
std::cout << "override: " << override << '\n';
}
:
B::foo();
B::override();
override: 42
B::~B();
A::~A();
final(C++11)
|
, |