私の質問はこれに似ていると思いますが、C#ではなくC ++の場合です(同じ答えが両方に当てはまる場合があります)。
私の質問もこれに似ています(重複としてマークされています)。ただし、違いは、その質問がコンストラクター プロトタイプについて尋ねているのに対し、私の質問はコンストラクター定義ブロックについて尋ねていることです。
次のコンストラクター定義ブロックを検討してください。
template <class T>
SimpleMatrix<T>::SimpleMatrix(int rows, int cols, const T& initVal)
: m_data(rows * cols, initVal)
, m_rows(rows)
, m_cols(cols)
{}
私は C++ の初心者で、CallOne() : call_two(), call_three(), call_four() {}
構文が混乱しています。
次のコード ブロックと同等ですか?
template <class T>
SimpleMatrix<T>::SimpleMatrix(int rows, int cols, const T& initVal)
{
vector <T> m_data(rows * cols, initVal);
m_rows = rows;
m_cols = cols;
}
SimpleMatrix
クラス定義内では、 m_data
、m_rows
、およびが次のようにブロックm_cols
で宣言されていることに注意してください。private
private:
int m_rows;
int m_cols;
vector<T> m_data;