http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=9549
↑ネタ元はここ。
プロパティを持たないC++屋には、フィールド(メンバ変数)を公開するのは
やはり抵抗あります。
↓タダの入れ物だってときゃ別にかまわんのですけどね
struct sales_item {
public int unit_price; // 単価
public int quantitiy; // 数量
};
プロパティの目的の一つは派生属性を表現するってことかと思うですね。
属性のひとつなんだけど、他の属性から派生(導出)されたやつ、っての。
上記の場合"お値段"はunit_price×quantityによって導出される
もんで、こいつを勝手にいじっちゃなりません。なので:
struct sales_item {
public int unit_price; // 単価
public int quantitiy; // 数量
public int price() // お値段
{ return unit_price * quantitiy; }
};
…どれもsales_itemのもつ値だっちゅのに
お値段だけにカッコが付くんがどうにも座りが悪い。そこで:
struct sales_item {
public int unit_price; // 単価
public int quantitiy; // 数量
public int price // お値段
{ get {return unit_price * quantitiy;} }
};
こうしておけば利用者に単価×数量を計算してもらわんで済むし、
どれも同格に見えますわな。
[追記]
図らずもわんくま同盟blogにて「プロパティ祭」の様相。
…おもしろいね、コレ。
誰かが"お題"を出して、そいつをみんながblogで語るっての、やんない?