Browse Source

Document caveats related to multiple inheritance in C++ modules

Hugo Locurcio 4 years ago
parent
commit
70e5410347
1 changed files with 10 additions and 7 deletions
  1. 10 7
      development/cpp/custom_modules_in_cpp.rst

+ 10 - 7
development/cpp/custom_modules_in_cpp.rst

@@ -28,7 +28,7 @@ instead. Adding C++ modules can be useful in the following scenarios:
 -  Binding an external library to Godot (like PhysX, FMOD, etc).
 -  Binding an external library to Godot (like PhysX, FMOD, etc).
 -  Optimize critical parts of a game.
 -  Optimize critical parts of a game.
 -  Adding new functionality to the engine and/or editor.
 -  Adding new functionality to the engine and/or editor.
--  Porting an existing game.
+-  Porting an existing game to Godot.
 -  Write a whole, new game in C++ because you can't live without C++.
 -  Write a whole, new game in C++ because you can't live without C++.
 
 
 Creating a new module
 Creating a new module
@@ -503,10 +503,10 @@ Writing custom documentation
 ----------------------------
 ----------------------------
 
 
 Writing documentation may seem like a boring task, but it is highly recommended
 Writing documentation may seem like a boring task, but it is highly recommended
-to document your newly created module in order to make it easier for users to
-benefit from it. Not to mention that the code you've written one year ago may
-become indistinguishable from the code that was written by someone else, so be
-kind to your future self!
+to document your newly created module to make it easier for users to benefit
+from it. Not to mention that the code you've written one year ago may become
+indistinguishable from the code that was written by someone else, so be kind to
+your future self!
 
 
 There are several steps in order to setup custom docs for the module:
 There are several steps in order to setup custom docs for the module:
 
 
@@ -695,9 +695,12 @@ Summing up
 
 
 Remember to:
 Remember to:
 
 
--  use ``GDCLASS`` macro for inheritance, so Godot can wrap it
--  use ``_bind_methods`` to bind your functions to scripting, and to
+-  Use ``GDCLASS`` macro for inheritance, so Godot can wrap it.
+-  Use ``_bind_methods`` to bind your functions to scripting, and to
    allow them to work as callbacks for signals.
    allow them to work as callbacks for signals.
+-  **Avoid multiple inheritance for classes exposed to Godot**, as ``GDCLASS``
+   doesn't support this. You can still use multiple inheritance in your own
+   classes as long as they're not exposed to Godot's scripting API.
 
 
 But this is not all, depending what you do, you will be greeted with
 But this is not all, depending what you do, you will be greeted with
 some (hopefully positive) surprises.
 some (hopefully positive) surprises.