【发布时间】:2016-11-09 21:04:05
【问题描述】:
我正在执行一项任务。作业的目标是拥有 4 种不同的排序算法并比较它们以确定何时比另一种更好。我决定将每个排序方法创建为自己的类,并将要排序的向量传递给该类。
由于这些类中的每一个都将被包含并具有相同的参数(因此不会重载),我如何指定我希望调用的排序函数?我试过做
插入排序.sort(insertvec); //错误:未声明插入排序
插入排序::排序(insertvec); //错误:未声明插入排序
排序(插入向量); //有效
插入排序->排序(insertvec); //错误:未声明插入排序
所有类都使用命名空间 std,因为我看不出更改命名空间会有什么帮助。是的,我对命名空间的工作知识很薄弱。
更新:
好的,术语选择不当。我没有使用课程。我认为类是 cpp 和 h 文件,这是不准确的。我没有将排序算法写成类,只是写在 cpp 中但由头文件访问的函数,这些函数被包含并被调用。
那么我如何告诉编译器我想要merge.sort() 而不是insertion.sort()?
【问题讨论】:
-
但是你可以再次使用函数。
-
你为什么需要一个班级?
-
听起来你应该使用
namespace而不是class。 -
@RichardBarker,如果你提到虚函数和继承,那是不必要的开销。模板化解决方案将允许编译器进行更多优化。
-
为什么不能只调用一个函数
insertion_sort()和另一个bubble_sort()等等?
标签: c++ function call header-files