[英]Access to private member from static helper function
我正在寻找一种实现需要访问嵌套私有类的朋友/私有函数的方法。 我想避免在头文件中声明它,以抽象化实现细节并避免使头过大。 这些函数也不应在实现它们的源文件之外调用。
理想情况下,它应该是静态函数,但是可以通过某种方式访问私有类/成员。
我读过,无名命名空间至少可以帮助我解决后一个问题,这是正确的吗?
谢谢。
您正在寻找赫伯·萨特(Herb Sutter) 在第100和101 星期的大师中定义的PImpl习惯用法。
这个想法是定义一个公共接口,它包含一个私有接口的不透明句柄:
// PUBLIC INTERFACE
struct API
{
void some_function();
private:
struct Impl; // not necessarily a nested type
Impl* pImpl;
};
实现如下
#include <private_interface.h>
void API::some_function() { pImpl->some_function(); }
私有接口是
// PRIVATE INTERFACE
struct API::Impl
{
void some_function() { /* actual code */ }
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.