mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2024-03-22 13:30:58 +08:00
Attempt to add an example (that is as non-controversial as possible) of an inheritance hierarchy to C.120
This commit is contained in:
parent
f1d3846300
commit
29fdd0d30c
@ -6108,7 +6108,27 @@ Do *not* use inheritance when simply having a data member will do. Usually this
|
||||
|
||||
##### Example
|
||||
|
||||
??? Good old Shape example?
|
||||
class DrawableUIElement {
|
||||
public:
|
||||
virtual void render() const = 0;
|
||||
// ...
|
||||
};
|
||||
|
||||
class AbstractButton : public DrawableUIElement {
|
||||
public:
|
||||
virtual void onClick() = 0;
|
||||
// ...
|
||||
};
|
||||
|
||||
class PushButton : public AbstractButton {
|
||||
virtual void render() const override;
|
||||
virtual void onClick() override;
|
||||
// ...
|
||||
};
|
||||
|
||||
class Checkbox : public AbstractButton {
|
||||
// ...
|
||||
};
|
||||
|
||||
##### Example, bad
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user