#include<cstdlib>
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
class getAverage{
public:
template<class add>
add computeAverage(add input[], int nosOfElem){
add sum = add();//calling default constructor to initialise it.
for(int index=0;index<=nosOfElem;++index){
sum += input[index];
}
return double(sum)/nosOfElem;
}
template<class looptype>
looptype* returnArray(int sizeOfArray){
looptype* inputArray= (int*)malloc(sizeof(int)*sizeOfArray);
for(int index=0;index<=sizeOfArray;++index){
inputArray[index]=index;//=rand() % sizeOfArray;
}
return inputArray;
}
};
int main(){
int sizeOfArray=2;
int inputArray;
getAverage gA;
int* x= gA.returnArray(sizeOfArray);
for(int index=0;index<=2;++index){
cout<<x[index];
}
cout<<endl;
cout<<gA.computeAverage(x,sizeOfArray);
free(x);
return 0;
}
を導き出すことができませんでした(INT、長い文字列..etcを。)。私はそれをやろうとしましたが、 "looptype"は型の値を決して得られないことに気付きました。誰かがこれを行う方法を提案することはできますか?は、私は別のタイプの動的配列を作成することができ、それを通してテンプレート関数を作成するテンプレートパラメータ「looptype」
おかげ
なぜ「自動」ではないのですか?また、C++コードで 'malloc'はここで何をしていますか? Cスタイルのポインタとサイズのペアを渡すのではなく、サイズを返すメソッドを持つコンテナ 'std :: vector'を絶対に使用しないで' new [] 'を使用してください。 – tadman