無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

C++/CLIをつつく11−クラス。サブルーチンの進化

今回の記事からは オブジェクト指向プログラミングに関するC++/CLIの機能や要素を解説していくぞ〜。
楽しいな♪楽しいな♪オブジェクト指向にゃースパゲティも何にも無い。
※一部表現を誇張しております。
さてオブジェクト指向シリーズ第一弾はクラスだピヨ。 論よりプログラミング!まずは不味いコードを見ておくんなまし。

namespace Sample
{
	public ref class Bird
	{
	public:
		//フィールド
		String^ Name;
		Int32 Age;

		//メソッド
		void Talk( ) {
			Console::WriteLine( "ワタシハ{0}。年は{1}だよ。", 
                            this->Name, this->Age);
		}
	};
}

このコードどこかで見たこと無いかな?そう、前回の構造体の記事のサンプルコードの
value structキーワードを
ref class
に変えただけなんだ。 読者は「なーんだ」とがっかりするだろうけど、この一つのキーワードが大きな違いを生むピヨ。 構造体は構造化プログラミングの概念で誕生したもので、 クラスはオブジェクト指向プログラミングの概念から誕生したものだから、 構造体にはオブジェクト指向の機能の一部がないけども、 クラスの方は全て兼ねそろえているんだよ。だからといって常にクラスの方がいいわけでは無いから注意してね。
察しがいい人は予想がついていると思うけど、またまた
ref struct
でもいいんだ。 この2つの違いはやはりデフォルトアクセス修飾子ピヨ。それにしてもそんな事する必要があったのかなぁ? ボクは凄く疑問だな。 こちらもstructはpublic、classはprivateだよ。 お勧めはやっぱりclassの方だよ。クラスを作るのにstructは気持ち悪いピヨね。まぁこれは好みの問題だけど、 valueの方でstructを選んだらrefの方はclassと対照的に統一すると良いよ。その方が見分けがつきやすいからね。
具体的なオブジェクト指向プログラムの機能は個別につつくから今回はこれで終わり。
別窓 | C++/CLI | コメント:0 | トラックバック:0 | ∧top | under∨
<<C++/CLIをつつく12ープロパティ。データを守ろう。 | 無差別に技術をついばむ鳥 | C++/CLIをつつく10−構造体・モジュール。サブルーチン♪>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |