相关疑难解决方法(0)

我们能否增加这种面向密钥的访问保护模式的可重用性?

我们是否可以增加这种面向密钥的访问保护模式的可重用性:

class SomeKey { 
    friend class Foo;
    // more friends... ?
    SomeKey() {} 
    // possibly non-copyable too
};

class Bar {
public:
    void protectedMethod(SomeKey); // only friends of SomeKey have access
};
Run Code Online (Sandbox Code Playgroud)

为了避免持续的误解,这种模式不同于律师 - 客户的习惯用语:

  • 它可以比律师 - 客户更简洁(因为它不涉及通过第三类代理)
  • 它可以允许授权访问权限
  • ...但它对原始类也更具侵入性(每个方法一个虚拟参数)

(在这个问题中提出了一个侧面讨论,因此我打开了这个问题.)

c++ design-patterns idioms friend access-protection

26
推荐指数
1
解决办法
4417
查看次数

如何命名这种面向密钥的访问保护模式?

显然,这种面向密钥的访问保护模式:

class SomeKey { 
    friend class Foo;
    SomeKey() {} 
    // possibly non-copyable too
};

class Bar {
public:
    void protectedMethod(SomeKey); // only friends of SomeKey have access
};
Run Code Online (Sandbox Code Playgroud)

......还没有一个已知的名字,因此我想找到一个好的名字,所以我们可以在不断言的情况下参考它.建议?

它应该是:

  • 简洁
  • 传达访问保护的意图
  • 理想情况下不需要代理(?)

c++ design-patterns idioms friend access-protection

18
推荐指数
2
解决办法
2656
查看次数

如何知道另一个函数

我想知道是否有任何方法可以知道当前执行的函数在哪里被调用,这是在什么文件和行中.我正在使用C语言,我正在寻找类似于__FUNCTION __,__LINE__或__FILE__宏的东西.

c macros file function line

10
推荐指数
1
解决办法
1657
查看次数

标签 统计

access-protection ×2

c++ ×2

design-patterns ×2

friend ×2

idioms ×2

c ×1

file ×1

function ×1

line ×1

macros ×1