我想在我的.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);
};


选择哪种方法取决于verySimpleprocessTolerances的性质-没有通用的“最佳解决方案”。

07-27 16:36