C/C++ ポインタ入門 > 文字列クラス > コピーコンストラクタ
Nobuhide Tsuda
Jan-2014
String コピーコンストラクタ:
String::String(const String &x)
: m_allocSize(x.m_allocSize) // キャパシティを初期化
, m_data(new char[x.m_allocSize]) // 文字列領域を初期化
, m_size(x.m_size) // サイズを初期化
{
for(int i = 0; i <= m_size; ++i) {
m_data[i] = x.m_data[i]; // '\0' まで文字をコピー
}
}
解説:
- コピーコンストラクタは、型が無く、クラス名::クラス名(const 型 &) {...} で実装します。
- メンバイニシャライザ、関数の中身で、メンバ変数の初期化を行います。値はコピー元オブジェクトのものを参照します。
- 文字列領域だけは別途メモリをアロケートします。
- コピー元オブジェクトの文字列を '\0' も含めて文字列領域にコピーします。
前:
| 次: