なるようにする。

スノーボードとプログラムとときどき○○○

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  41  : 記事  0  : コメント  844  : トラックバック  5

書庫

日記カテゴリ

職場でプチネタがあったのでのっけてみる(^^

  class baby : father , mother { }
 
  baby prettybaby = new baby ();

スタンダードな感じ。
父の継承も母の継承もバッチリ。

・・・なんだけど、物理的なニュアンス(?)を含めるなら、

  1. 子供は母から出産
  2. 子供は父からも母からも似たような部分を受け継ぐ
  3. 実際に父の依存性が注入されるのは、子供が生成されるnヵ月前 :-)

まぁ継承は前例と同じなので、1つめと3つめを加味してみて、こんなん出ました。

 class father { /* 割愛 */ };
 class mother { /* 割愛 */ };

 class baby : class mother {
   private:
     baby();
     baby(const baby& rhs){};
     baby& operator=(const baby& rhs){};
   public:
     baby(father& papa_DNA)
     {
       //construction :-)
     };
 }

 baby prettybaby = new baby(father());
 prettybaby.sleep( 10month );

基本はお母さんから生まれるかわいいベイビー
でもお父さんの情報も生成時にバッチリうけとります
クローンは許しません:-)

・・・あれ?双子とか全然考えれてない気が

子供が生まれるのって依存性の注入チックだなーとか思ってたんですが
よく考えると、DIを例にしちゃうと、子供が生まれてから中身が決まるというオソロシーことに。。。

投稿日時 : 2007年9月3日 15:46

コメント

# re: 親子をクラスで表すと? 2007/09/03 15:55 シャノン
継承すると「子供は父親でもあり母親でもある」ことになってしまいますぜ。
俺ならどちらとも継承関係にしない。

# re: 親子をクラスで表すと? 2007/09/03 16:14 とっちゃん
継承で表現するなら private 継承かなぁ?

というよりも、クラスで表現するには無理がありすぎではないかと...w

# re: 親子をクラスで表すと? 2007/09/03 16:18 むら
こんにちは、僕ならこんな感じにしますが...

・Personクラスを作り、属性として性別と父、母を用意。
・ベッドルームと言う名前のファクトリを作る。
・Personを二つ渡すとPersonが返却される様なCreateChildメソッドを用意する。 当然、性別が男女でなければnullが返される。
・ファクトリで返されるPerson(子供)の父属性には父親のオブジェクトへの参照を、母属性には母オブジェクトへの参照をセット。

つまり言いたかった事は父とか母というものはクラスで表現するよりも、子供の属性で表現したほうがしっくりするような気がします。

ファクトリクラスの名前は微妙ですが...


# re: 親子をクラスで表すと? 2007/09/03 16:34 ddnp
> baby(const baby& rhs){};
> baby& operator=(const baby& rhs){};
とりあえず、定義はしないで

> baby(father& papa_DNA)
constじゃないのが気になって・・・はっもしかして
papa_DNA.stamina /= 2;とか^^;

# re: 親子をクラスで表すと? 2007/09/03 16:35 tyato
なるほど。
父母と子供をクラスで表現ってのが微妙に(結構?)無理がある感じですねぇ

属性っていう考え方が正解に近い気が。

# re: 親子をクラスで表すと? 2007/09/03 16:43 けろ
>ベッドルームと言う名前のファクトリを作る

子供はファクトリから産まれることになりません?
その以外の誕生方法がなくなっちゃうような... (あ、すいません orz)

この場合、継承関係にするのは、無理ですね。
(シャノンさんやとっちゃんと同意見)

CreateChildメソッドを用意するのは手ですけど、
親や子には、hasParentやhasChildなどのプロパティも用意しておく
べきでしょうね。

# re: 親子をクラスで表すと? 2007/09/03 16:50 むら
本当は女性にファクトリ機能を付けようと思ったんですけど...

でもそうすると、某大臣みたいな「産む機械」って受け取られかねないので、やめましたwww

# re: 親子をクラスで表すと? 2007/09/03 17:19 Zee
年齢のプロパティが20になると
大人に昇格するのでしょうか?

# re: 親子をクラスで表すと? 2007/09/03 19:37 tyato
継承でどーにかすることをあきらめましたw
根本的に視点が間違っちゃってた気が(面白いけど)

ただ、オブジェクトで表現はしてみたいなーと興味津々。
それなりのものにしてみたい気まんまん

ところで、
 ・アクティブな動きで新しくオブジェクトを作り出す
 ・かつ2つが連携しないと新しいオブジェクトを作り出せない。
みたいなのって、依存の「種」(へんな意味じゃなくて。)を持たせないとあかんてことかなぁ。。
Personクラスがあって、その属性として性別DNAが「XY」を持っているなら男性で、と考えると、「Y」を持っている場合にだけ「XX」のクラスに対して働きかけることが可能みたいなイメージ?

ところで
>papa_DNA.stamina /= 2;
そこまで考えてませんでしたwおみそれしました(^^;;

あと
>年齢のプロパティが20になると
>大人に昇格するのでしょうか?
法的な大人より人間的な大人を意識してたので、むしろ20が動的になる・・・?
しかも、人によってまちまちで、ややリアクティブ なイベントで大人になる、みたいな。

まじめに考えてるんだけど、ひとつ間違えるとはげしくエロスですね
(^^;;;



# re: 親子をクラスで表すと? 2007/09/03 19:38 tyato
入力禁止文字とかあるのね。。。
性別DNAのところを英語で書いてたら北斗拒否拳を発動されまくりですた
。・゚・(ノД`)・゚・。

# re: 親子をクラスで表すと? 2007/09/03 20:18 通りすがり
人間はどんなに似通っていてもそれぞれ独立した存在ですよね。
大好きな人と一体になりたいと願っても叶わない。でもそこに人生の素晴らしさもあるような気が。
というかオブジェクト指向って物理的な物ではなく、関連を表現するものだと思っていましたが・・どうなのでしょう。

# re: 親子をクラスで表すと? 2007/09/03 22:01 中博俊
だからこうだって

Baby(&papa, %mama);



# re: 親子をクラスで表すと? 2007/09/03 23:27 επιστημη
んー...

abstract class Human { ... }
class Male : Human { ... }
class Female : Human {
 public Human Deliver(Male papa) { /* たして2でわる */}
 ...
}

めそっど Deliver が public なのは実に'けしからん'ですが。


# re: 親子をクラスで表すと? 2007/09/04 10:25 Chuki
インスタンスを生成するときに、属性へ微妙に変化を持たせないと進化が止まる....^^;

>public Human Deliver(Male papa) { /* たして2でわる */}
うちの娘は妻似で美人...
ハ、Public!!!


# kQEBMksttHOIntLa 2011/12/13 18:04 http://www.birthcontrolremedy.com/birth-control/cl
Hooray! the one who wrote is a cool guy..!

# SKLboNsWvrAlmprAtYI 2011/12/13 20:21 http://www.d4women.net/yasmin.php
I do`t see a feedback or the other coordinates from the blog administration!...

# RyWtHYfwbSDhIjNAZY 2011/12/22 22:17 http://www.discreetpharmacist.com/fre/index.asp
Honestly, not bad news!...

Post Feedback

タイトル
名前
Url:
コメント