Matthieu M.在我之前见过的这个答案中提出了一种访问保护模式,但是从来没有自觉地考虑过一种模式:class SomeKey { friend class Foo; SomeKey() {} // possibly make it non-copyable too};class Bar {public: void protectedMethod(SomeKey);};在这里,只有一个friend密钥类可以访问protectedMethod():class Foo { void do_stuff(Bar& b) { b.protectedMethod(SomeKey()); // fine, Foo is friend of SomeKey }};class Baz { void do_stuff(Bar& b) { b.protectedMethod(SomeKey()); // error, SomeKey::SomeKey() is private }};它允许更多的细粒度访问控制不是制造Foo一个friend的Bar,避免了更多的复杂模式进行代理。有谁知道这种方法是否已经有名称,即已知模式?
- 3 回答
- 0 关注
- 584 浏览
添加回答
举报
0/150
提交
取消