私は行列を扱えるプログラムを作成しようとしている学校プロジェクトがあります。これまでは、行列を生成して基本的な操作を行うことができる、目的外のコードを持っていました。しかし、最初はデータ型を定義しなければなりません。データ型は行列に保存されます。だから、先生はテンプレートを使って多才なことをお勧めします。C++のテンプレート - データ型に関する推測されたポインタからのデータの作成方法
可変データ型が必要な場所は2つあります。
1)行列を定義する構造体 - 行列単一要素のデータ型へのポインタへのポインタ。 (TTypeが定義されています)
struct TMatrix
{
TType **iData;
unsigned iY, iX;
};
2)個々の機能、たとえば単一の要素を扱うことができる機能。
TType &At(TMatrix &aMat, const unsigned prvek_x, const unsigned prvek_y)
{
return (TType(aMat.iData[prvek_x][prvek_y]);
}
まず、1)テンプレート構造を生成する際のテンプレートの使い方は?私はこのTMatrix<double> amat = { nullptr, 0, 0 };
第二の事のようにそれを呼び出すようにしたい場合は、それはguesedポインタから基本的なデータ型を取得することが可能であるので、私はこの
template <typename T>
T &At(TMatrix &aMat, const unsigned prvek_x, const unsigned prvek_y)
のような)2で何かを使用している場合はどのように私はdouble
からを得ることができます代わりにTType
を代用するT
これで私を助けてもらえますか?
あなたはタイプを推測するために 'decltype(TMatrix ::のiDataを)'を使用することができます。 –
あなた2)が間違っています。最初のパラメータの型は 'TMatrix'だけでなく' TMatrix 'でなければなりません。 –