如何在类中创建以下函数,然后从main访问此函数? 我的类只是一堆静态函数的集合。
template<typename T> double foo(vector<T> arr);
答案 0 :(得分:30)
在.h文件中定义函数。
适合我的工作
A.H
#include <vector>
#include <iostream>
using namespace std;
class A {
public:
template< typename T>
static double foo( vector<T> arr );
};
template< typename T>
double A::foo( vector<T> arr ){ cout << arr[0]; }
的main.cpp
#include "a.h"
int main(int argc, char *argv[])
{
A a;
vector<int> arr;
arr.push_back(1);
A::foo<int> ( arr );
}
答案 1 :(得分:3)
您制作模板类:
template<typename T>
class First
{
public:
static double foo(vector<T> arr) {};
};
另请注意,您应该通过引用传递vector
,或者在您的情况下,const
引用也会这样做。
template<typename T>
class First
{
public:
static double foo(const vector<T>& arr) {};
};
然后您可以调用以下函数:
First<MyClass>::foo(vect);