


How Can I Efficiently Implement Both Const and Non-Const Getters in C ?
Dec 02, 2024 pm 05:43 PMOvercoming the Const Conundrum for Duplicate Getters
The dilemma arises when implementing getters in classes with both const and non-const versions. Compiling errors hinder the implementation of either method using the other. Additionally, casting is necessary to call the const version from the non-const one.
An Elegant Solution
Effective C proposes an unconventional yet effective solution: implement the non-const version by casting away the const from the const version. While not aesthetically pleasing, this approach guarantees safety since the calling function is non-const. Thus, casting away the const from the const object is permissible.
Example:
class Foo { public: const int& get() const { // Non-trivial work return foo; } int& get() { return const_cast<int&>(const_cast<const Foo*>(this)->get()); } };
The above is the detailed content of How Can I Efficiently Implement Both Const and Non-Const Getters in C ?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

C language function format letter case conversion steps

What are the types of values returned by c language functions? What determines the return value?

What are the definitions and calling rules of c language functions and what are the

How does the C Standard Template Library (STL) work?

Where is the return value of the c language function stored in memory?

How do I use algorithms from the STL (sort, find, transform, etc.) efficiently?
