+ 1
C++ methods interesting definition
I see some functions in class is defined like void func() = default; or void func() const {}; I could not find the right keywords for searching this. How are those definitions called and what does it mean?
2 ответов
+ 2
It is possible for the compiler to generate certain functions for you. That is what the "= default" is intended for. You can use it for example if you quickly want to add a default constructor to your class. There is also the "= delete" keyword, which will forbid use of the marked function and generate an error if it is called.
https://www.bogotobogo.com/cplusplus/C11/C11_default_delete_specifier.php
https://stackoverflow.com/questions/27232943/when-to-use-default-vs-delete
The top answer in this thread gives an overview over what code the compiler generates for each defaulted method:
https://stackoverflow.com/questions/563221/is-there-an-implicit-default-constructor-in-c/563320#563320
Constant methods are methods that do not change the object they are called from in any way. Only constant methods can be called from constant instances of a class.
https://stackoverflow.com/questions/3141087/what-is-meant-with-const-at-end-of-function-declaration
0
Thank you for clear explanation 🙂🙃🙃