私は学生で、C ++の配列用の静的ライブラリを使用しているので、レッスン中に毎回コードを書き直す必要はありません。
私は中学2年生なので、専門家ではありません。コードをすべてのタイプ(int、float、ecc。)と互換性があるようにしたいのですが、問題が発生しています。
私のコードを見ていただけますか?
// slarray.h
#if !defined _SLARRAY_
#define _SLARRAY_
template <typename Tipo> class Array {
public:
void inserisci();
void visualizza();
void copia(Tipo*);
Array(short);
~Array();
private:
Tipo* ary;
short* siz;
};
#endif
// slarray.cpp
#include <iostream>
#include "slarray.h"
unsigned short i;
unsigned short j;
template <typename Tipo> void Array<Tipo>::inserisci() {
for (i = 0; i < *siz; i++) {
std::cout << i << ": ";
std::cin >> ary[i];
}
}
template <typename Tipo> void Array<Tipo>::visualizza() {
for (i = 0; i < *siz; i++) {
std::cout << ary[i] << " ";
}
}
template <typename Tipo> void Array<Tipo>::copia(Tipo* arycpy) {
for (i = 0; i < *siz; i++) {
*(arycpy + i) = ary[i];
}
}
template <typename Tipo> Array<Tipo>::Array(short n) {
siz = new short;
*siz = n;
ary = new Tipo[n];
}
template <typename Tipo> Array<Tipo>::~Array() {
delete[] ary;
delete siz;
}
次のコマンドでクラスを初期化しようとすると、コードでエラーが発生します。
Array <int> vct(5);