Yes, but new C++ programmers don't usually understand what it means, so this practice should be avoided if the organization rotates developers. If the goal is to create a member function that will be invoked only by derived classes (such as sharing common code in the abstract base class), create a protected: nonvirtual function instead of using this feature. If the goal is to make something that may be callable from user code, create a distinctly named member function so that users aren't forced to use the scope operator, ::. The exception to this guideline is a pure virtual destructor in an ABC (see FAQ 21.13). |