0

私の質問はこれに似ていると思いますが、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_datam_rows、およびが次のようにブロックm_colsで宣言されていることに注意してください。private

private:
  int m_rows;
  int m_cols;

  vector<T> m_data;
4

1 に答える 1