在C中实际使用’protected’说明符
发布时间:2020-12-16 10:24:03 所属栏目:百科 来源:网络整理
导读:我知道这个说明符是如何工作的. 我对实际编程中这些东西的实际使用感兴趣.我无法想象任何受保护类成员真正需要的例子(我的意思是当我们不能用’private’替换’protected’时). 解决方法 一个类有两个API – 一个用于实例化它并使用结果对象的代码,另一个用
我知道这个说明符是如何工作的.
我对实际编程中这些东西的实际使用感兴趣.我无法想象任何受保护类成员真正需要的例子(我的意思是当我们不能用’private’替换’protected’时). 解决方法
一个类有两个API – 一个用于实例化它并使用结果对象的代码,另一个用于子类.
第一个API是公共成员,第二个API是公共成员和受保护成员.有一些操作和数据可供子类访问,“普通用户”无法访问. 作为一个具体的例子,想象一下Windows GUI类库.它包装和隐藏普通的旧Windows API.窗口代表一个窗口,并且有一个HWND,它是底层的Windows窗口句柄.它隐藏了Window类用户的HWND,因为它不属于他们的业务(或者如果它们可以使用它,它只通过只读访问器公开它).但是Window的子类(如FrameWindow或EditControl)可以直接访问HWND: class Window { public: void Show(); // Example public API protected: HWND m_hwnd; }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |