こちらのコードのエラーの原因がわかりません。分かる方がいればお教え頂きたいです。よろしくお願いします。
ちなみにこちら林晴比古「明快入門C++ シニア編」の25章のデストラクタのコードの説明のサンプルコードです。
C++
1#include <iostream> 2#include <fstream> 3#include <string> 4#include <cctype> 5using namespace std; 6 7class Mystring{ 8public: 9 char* text; 10public: 11 Mystring(char* ss); //コンストラクタ宣言 12 Mystring(const Mystring &obj); //コピーコンストラクタ 13 ~Mystring(); //デストラクタ宣言 14 void disp() { cout << "text = " << text << '\n';} 15}; 16 17Mystring::Mystring(char* ss) //コンストラクタ本体 18{ 19 text = new char[strlen(obj.text)+1]; //メモリ確保 / +1は[\0]の分 20 strcpy(text,ss); 21} 22Mystring::Mystring(const Mystring &obj) //コピーコンストラクタ本体 23{ 24 text = new char[strlen(obj.text)+1]; //新しくメモリ確保 25 strcpy(text,obj.text); //objの文字列をコピー 26} 27Mystring::~Mystring() //デストラクタ本体 28{ 29 delete[] text; //メモリ開放 30} 31int main() 32{ 33 Mystring ss1("abcde"); 34 Mystring ss2 = ss1; 35 ss1.disp(); 36 ss2.disp(); 37 return 0; 38}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。