llvm-project/clang-tools-extra/docs/clang-tidy/checks/fuchsia-multiple-inheritanc...

47 lines
978 B
ReStructuredText
Raw Normal View History

.. title:: clang-tidy - fuchsia-multiple-inheritance
fuchsia-multiple-inheritance
============================
Warns if a class inherits from multiple classes that are not pure virtual.
For example, declaring a class that inherits from multiple concrete classes is
disallowed:
.. code-block:: c++
class Base_A {
public:
virtual int foo() { return 0; }
};
class Base_B {
public:
virtual int bar() { return 0; }
};
// Warning
class Bad_Child1 : public Base_A, Base_B {};
A class that inherits from a pure virtual is allowed:
.. code-block:: c++
class Interface_A {
public:
virtual int foo() = 0;
};
class Interface_B {
public:
virtual int bar() = 0;
};
// No warning
class Good_Child1 : public Interface_A, Interface_B {
virtual int foo() override { return 0; }
virtual int bar() override { return 0; }
};
See the features disallowed in Fuchsia at https://fuchsia.googlesource.com/zircon/+/master/docs/cxx.md