plantillas - template en c++ pdf
Funciones de plantillas estáticas en una clase (2)
¿Cómo hago la siguiente función dentro de una clase y luego accedo a esta función desde main? Mi clase es solo una colección de un montón de funciones estáticas.
template<typename T> double foo(vector<T> arr);
Defina la función en el archivo .h.
Funciona bien para mi
ah
#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 );
}
Usted hace una clase de plantilla:
template<typename T>
class First
{
public:
static double foo(vector<T> arr) {};
};
También tenga en cuenta que debe pasar vector
por referencia o, en su caso, también const
referencia haría lo mismo.
template<typename T>
class First
{
public:
static double foo(const vector<T>& arr) {};
};
A continuación, puede llamar a la función como:
First<MyClass>::foo(vect);