我认为我的问题类似于这个问题,但对于 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;