我知道这个说明符是如何工作的.
我对实际编程中这些东西的实际使用感兴趣.我无法想象任何受保护类成员真正需要的例子(我的意思是当我们不能用'private'替换'protected'时).
Ric*_*dle 12
一个类有两个API - 一个用于实例化它并使用结果对象的代码,另一个用于子类.
所述第一API是public成员,而第二个是public与protected成员.有一些操作和数据可供子类访问,"普通用户"无法访问.
作为一个具体的例子,想象一下Windows GUI类库.它包装和隐藏普通的旧Windows API.A Window代表一个窗口,并具有一个HWND底层的Windows窗口句柄.它隐藏了类的HWND用户Window,因为它不属于他们的业务(或者如果他们可以使用它,它只通过只读访问器公开它).但是对于子类Window,FrameWindow或者是 EditControl,HWND直接访问它是可以的:
class Window
{
public:
void Show(); // Example public API
protected:
HWND m_hwnd;
};
Run Code Online (Sandbox Code Playgroud)