C++ 在类模板中创建模板函数对象
在我前面的问题中 简而言之,在类中,我可以通过创建一个对象并调用它或直接使用范围解析操作符来调用成员函数。 现在,我想在下面两个类模板中使用它。 第一类模板是:C++ 在类模板中创建模板函数对象,c++,class,templates,C++,Class,Templates,在我前面的问题中 简而言之,在类中,我可以通过创建一个对象并调用它或直接使用范围解析操作符来调用成员函数。 现在,我想在下面两个类模板中使用它。 第一类模板是: template<typename T> class Point { public: //constructor Point () { } //initialise the vector Point(std::vector<T> &vector);
template<typename T>
class Point {
public:
//constructor
Point () { }
//initialise the vector
Point(std::vector<T> &vector);
//deconstructor
~Point () { }
//to calculate distance between two points
T distance(const Point &p1, const point &p2);
//members
std::vector<T> data_points;
int dimensions;
int name;
};
template<typename T>
class calculate {
public:
bool initialise(const std::vector<Point<T>> &points);
bool load_points(const std::string &filepath, std::vector<Point<T>> *dpt);
const std::vector<Point<T>> &getPoints() const
{
return points;
}
const std::vector<Point<T>> &getMeans() const
{
return means;
}
private:
std::vector<Point<T>> means;
std::vector<Point<T>> points;
};
模板
类点{
公众:
//建造师
点(){}
//初始化向量
点(标准::向量和向量);
//解构器
~Point(){}
//计算两点之间的距离的步骤
T距离(常数点和p1、常数点和p2);
//成员
std::矢量数据点;
整数维;
int名称;
};
第二类模板是:
template<typename T>
class Point {
public:
//constructor
Point () { }
//initialise the vector
Point(std::vector<T> &vector);
//deconstructor
~Point () { }
//to calculate distance between two points
T distance(const Point &p1, const point &p2);
//members
std::vector<T> data_points;
int dimensions;
int name;
};
template<typename T>
class calculate {
public:
bool initialise(const std::vector<Point<T>> &points);
bool load_points(const std::string &filepath, std::vector<Point<T>> *dpt);
const std::vector<Point<T>> &getPoints() const
{
return points;
}
const std::vector<Point<T>> &getMeans() const
{
return means;
}
private:
std::vector<Point<T>> means;
std::vector<Point<T>> points;
};
模板
类计算{
公众:
布尔初始化(常数标准::向量和点);
bool加载点(const std::string和filepath,std::vector*dpt);
常量std::vector&getPoints()常量
{
返回点;
}
常量std::vector&getMeans()常量
{
返回方式;
}
私人:
std::向量平均值;
std::向量点;
};
下面是一段“main.cc”:
//内部int main()
int main(int argc,char*argv[])
{
...
...
std::向量点;
calculate::load_points(filepath,&points);//此行显示错误
用于(常数自动和p:点)
{
std::cout您不能像那样调用加载点
,因为它不是声明的静态
,因此您需要类的实例
比如你可以说
calculate<double> calc;
calc.load_points(filepath, &points);
计算calc;
计算加载点(文件路径和点);
请提取一个最小的、完整的、可验证的示例。如果没有示例,您的问题是离题的。