クラス内で次の関数を作成し、メインからこの関数にアクセスするにはどうすればよいですか?私のクラスは、静的関数の集まりです。
template<typename T> double foo(vector<T> arr);
.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 );
}
テンプレートクラスを作成します。
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);