#include <iostream.h>
#include <string.h>
class Test
{
private:
char *Name;
protected:
void ChangeName(const char *buf);
public:
Test(char *buf); //コンストラクタ(構築子)
~Test(); //デストラクタ(消滅子)
void ShowName() ;
void ChangeNameEx(const char *buf);
};
//コンストラクタ
Test::Test(char *buf)
{
//バッファ確保
Name=new char[100];
strcpy(Name,buf);
}
//デストラクタ
Test::~Test()
{
//バッファ解放
delete(Name);
}
void Test::ShowName()
{
cout<<"現在の登録名は"<<"\""<<Name<<"\"です。"<<endl;
}
void Test::ChangeName(const char *buf)
{
strcpy(Name,buf);
}
void Test::ChangeNameEx(const char *buf)
{
//クラス自身はprivate/protectedメンバを自由に使える
ChangeName(buf);
}
void main(void)
{
Test MyClass("デニス・リッチー");
char str[100] ;
MyClass.ShowName();
cout<<"名前を変更します。あなたの名前を入力してください。"<<endl;
cin>>&str[0];
//外部アクセスの場合はクラスのprivateメンバは呼び出せません。
//strcpy(MyClass.Name,str);
//外部アクセスの場合はクラスのprotectedメンバは呼び出せません。
//MyClass.ChangeName(str);
cout<<"名前を変更しましたので表示します。"<<endl;
MyClass.ChangeNameEx(&str[0]);
MyClass.ShowName();
//画面表示を保つ為使用
char buf;
cout<<"何か入力してください"<<endl;
cin>>buf;
} |