ルファーの生存報告場

自由気ままに書いてるウェブログ

. スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- --:--:-- スポンサー広告
164. C++ 言語でプロパティ的実装を試みたけど…

class Sample { // プロパティ "property" を定義 // (ここから) struct { operator int(void) { //ゲッター } int operator =(int value) { //セッター } } property; // (ここまで) };

Ruby や C# などで使える「プロパティ」の実装を関数で書けないかと考え、ある日ひらめいたので打ってみたよ。

これでうまくいくかどうか試してみたけど、うまくいかない…。
VC++2013の認識では、上述のゲッター・セッターは静的関数になるらしい。何でやねん。

調べてみたら、 C++ のネストされたクラスは Java と違って必ず静的らしい。
つまり、 Java でいう static 内部クラスに近いものしか作れず、上位クラスの動的メンバーにはアクセス不能。
残念です…。


template class SpecialProperty { T *_value; protected: T *it() { return _value; } void itIs(T *pValue) { this->_value = pValue; } public: virtual operator T(void) = 0; virtual T operator =(T value) = 0; }; class PropertyMethodSample { int val; public: PropertyMethodSample() : prop(this->val) {} struct Prop : public SpecialProperty { Prop(int &it) { this->itIs(&it); } operator int(void) { return *it(); } int operator =(int value) { return *it() = value; } } prop; };

こんなのを思いついたけど、実用的じゃないなぁ。

2014/02/21 04:35:37 未分類 コメント(0) トラックバック(0)

コメント

コメントの投稿

名前
名前の装飾 太字にする   なし
タイトル
メールアドレス
URL
本文
パスワード
非公開コメント

トラックバック

この記事にトラックバックする(FC2ブログユーザー): http://lufar.blog16.fc2.com/tb.php/164-3efe99fa
サンプルゲーム制作進捗報告 | 謹賀新年二〇一四
記事の検索
RSSリンクの表示
リンク
ブロとも申請フォーム
ブロとも一覧
QRコード
QR
↑クリックで拡大表示
メールを送る

名前:
メール:
件名:
本文:

FC2カウンター
Valid XHTML 1.0 and CSS
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。