gpt4 book ai didi

c++ - 在 C++ 中管理隐式类型转换

转载 作者:太空狗 更新时间:2023-10-29 23:26:09 25 4
gpt4 key购买 nike

我正在编写执行最近邻查询的代码。有两个简单的想法构成了用户如何在搜索中查询数据的基础:

  • 距离给定空间点最近的 N 个点。
  • 给定距离内的所有点。

在我的代码中,Points 被放入一个 PointList,PointList 是一个容器,负责跟踪在搜索中找到的点。

现在我的 PointList 对象有一个构造函数:

PointList( unsigned int maxvals ); // #1

接下来我要添加的两个构造函数是:

PointList( float maxdist ); // #2
PointList( unsigned int maxvals, float maxdist ); // #3

我的问题是:如何确保我的用户和 C++ 编译器生成正确的PointList 的构造函数并区分构造函数 1 和 2?我是否应该只实现#3 并提供定义任意大的常量maxvals 和 maxdist 的值?另一种选择可能是编写另一个轻量级对象系统来管理将点添加到列表的逻辑,但对于这样一个简单的想法来说,这感觉有点过分了。

我真的在努力让我的用户明白这一点,他们大多是科学家,他们有时在没有接受正规教育的情况下学习了 C++。谢谢!

最佳答案

为什么不使用工厂方法而不是构造函数?工厂方法具有可自定义名称的优势。


static PointList createNearestValues(unsigned int maxvals) {}
static PointList createByDistance(float maxdist) {}

关于c++ - 在 C++ 中管理隐式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1051089/

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