// ( r6.C ) // クラス定義の用語 // #include #include class String { // クラスの宣言部 private: int len ; // メンバ変数、private は省略できる public: char* str ; // メンバ変数 public: String( char* text="" ) ; // コンストラクタ ~String() { delete str ; } ; // デストラクタ : delete ポインタ int Get_len() { return len ; } // メンバ関数 } ; String::String( char* text ) // :: をスコ−プ解決演算子と呼ぶ { len = strlen( text ) ; str = new char[len+1] ; // new したのをデストラクタで delete する strcpy( str,text ) ; } int main() { String MOJI( "123456" ) ; // クラス String のインスタンス MOJI と呼ぶ cout << MOJI.str << "\n" ; // str はパブリックなため、直接アクセスできる cout << MOJI.Get_len() << "\n"; // 文字列を定義しただけで、その長さも勝手に // 計算して持っていることに注意。とても便利 return 0 ; } /* [結果] 123456 6 [参考] コンスタラクタ : クラスのインスタンス作成時のメモリの獲得を行なう。 デストラクタ : インスタンス消去時のメモリの解放を行なう。 インスタンスというのは、何か元の型からコピ−して作られたものという意味である。 オブジェクト指向の考え方から見れば、このインスタンスをオブジェクトと呼ぶことになる。 */