我想在我的.h
文件中声明一个向量,但是根据我发送的数据的精度,我可能希望向量为double
类型,或者我希望它为float
类型。
//tolerances.h
class verySimple{
public:
verySimple();
~verySimple();
void processTolerances(std::vector<double or float> tolerances);
};
请给我一个快速的课程吗?
谢谢。
最佳答案
尚不清楚要完成什么,但是通过示例判断,您需要一个可以接受浮点或双精度向量的函数。
您可以在C ++中重载函数:
class verySimple{
public:
void processTolerances(std::vector<float> tolerances);
void processTolerances(std::vector<double> tolerances);
};
然后根据参数将调用适当的参数。
或者,您可以将该函数作为模板:
template<typename T>
void processTolerances(std::vector<T> tolerances);
或者,如果
verySimple
总体上取决于类型:template<typename T>
class verySimple{
public:
void processTolerances(std::vector<T> tolerances);
};
选择哪种方法取决于
verySimple
和processTolerances
的性质-没有通用的“最佳解决方案”。