作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写执行最近邻查询的代码。有两个简单的想法构成了用户如何在搜索中查询数据的基础:
在我的代码中,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/
我是一名优秀的程序员,十分优秀!