ViVi Home > 技術文書 > ポインタ入門 > 文字列クラス > コピーコンストラクタ


 

 

C/C++ ポインタ入門 > 文字列クラス > コピーコンストラクタ
Nobuhide Tsuda
Jan-2014

String コピーコンストラクタ:

class String
{
    enum {
        INI_SIZE = 8,      // キャパシティ初期値
    };
public:
    String()
    String(const String &x)
    ~String() {}
private:
    char    *m_data;
    int    m_size;
    int    m_capacity;
};
String::String(const String &x)
    : m_capacity(x.m_capacity)  // キャパシティを初期化
    , m_data(new char[x.m_capacity])    // 文字列領域を初期化
    , m_size(x.m_size)      // サイズを 0 に初期化
{
    for(int i = 0; i <= m_size; ++i) {
        m_data[i] = x.m_data[i];            // '\0' まで文字をコピー
    }
}

解説:

 


前: | 次: