C++/CLIをつつく14-インスタンス。人はみな違う。ひとつだけの花。
int main(array< System::String ^ >^ args)
{
Bird^ b = gcnew Bird( "インドリ", 29 ) ;
b->Talk( );
b->Name = "ドリィちゃん";
b->Age = -20;
b->Talk( );
Console::WriteLine(
"ドリィちゃん、ボクと同じ年齢なんだね♪" );
Console::WriteLine( "もう一回ボク喋りたい。");
b->Name = "インドリ";
b->Talk( );
return 0;
}
このBirdクラスもう一回喋りたい場合面倒だと思わない?
一々Nameプロパティを設定するのは面倒だし、
そもそもひとつの変数を2人で共有するのはおかしいと思わない。
こんな場合正しいのは変数を二つ用意することなんだ。
やっぱり2人で共有するよりも2つ用意する方が自然だよね。
じゃあ、早速コードを修正しよう。
int main(array< System::String ^ >^ args)
{
Bird^ tori = gcnew Bird( "インドリ", 29 ) ;
tori->Talk( );
Bird^ dre = gcnew Bird( "ドリィちゃん", 16 );
dre->Talk( );
Console::WriteLine( "もう一回ボク喋りたい。");
tori->Name = "インドリ";
tori->Talk( );
return 0;
}
あれっ?ドリィちゃん今度は16だと言い出したぞ。女子高生には見えないけどなぁ・・・インドリィちゃん「うるさいぃぃぃ心は女子高生よ。」
こわっ!それはともかく、これでボクとドリィちゃんが違う事を出来るようになったぞ。 このようにクラスから作る変数をインスタンスと呼ぶんだ。
人間も一人一人違う個性があるよね。それと同じでクラスにもこの例の様に個性を認めなくちゃならないんだ。 だからインスタンスという概念が用意されているんだ。 この概念は大事だからちゃんと覚えてね。今はまだあまり利点を感じないと思うけど、 オブジェクト指向の機能をもっと詳しくつついていけばその大事がさがわかってくるピヨ。
インスタンスについてはひとまずお終い。次は継承を突っつくぞ。お楽しみに。