gpt4 book ai didi

c++:参数参数转换类的好名字

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:26 26 4
gpt4 key购买 nike

在 C++ 中,我有时会得到这样的实用程序类:

struct time_ref
{
time_ref(FILETIME & ft) : ftval(&ft), ttval(0) {}
time_ref(time_t & tt) : ttval(&tt), ftval(0) {}

FILETIME * ftval;
time_t * ttval;
}

它们依赖于隐式转换,例如减少重载次数:

void Foo(int x, int y, time_ref t)

基本原理:如果 Foo 有另一个带有重载的参数,原型(prototype)会成倍增加,例如X 的 3 个重载 * t 的 2 个重载是 6 个原型(prototype),而上面的转换器是 3 个(如果使用两个转换器,甚至是一个)。


他们总是:

  • 具有两种或多种类型的隐式构造函数
  • 应仅用作函数参数以启用这些转换

你的不同之处在于:

  • 支持的类型数量
  • 可以存储一个值,或者一个引用
  • 被调用者如何检测提供的类型(在上面的例子中,它是非空指针。另一个典型的实现是枚举字段和数据值的 union )

问题:

<强>1。这种模式有一个公认的/通用的名称吗?我通常称它们为“参数转换器”或“参数适配器”,这似乎并不常见

<强>2。将它们正式化的任何建议 - 例如有没有办法(除了添加这样的评论之外)确保它们仅用作参数?还有什么需要注意的吗?

最佳答案

当您需要处理许多不同的参数类型时,即使在您的接口(interface)“完成”之后,垫片通常也是一个不错的选择。它允许您以模块化、相当可重用的方式进行转换。参见 this wikipedia entry及其引用文章以获取更多信息。

关于c++:参数参数转换类的好名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com