■
id:ita:20050209
>a.func(x, &a)
sub1(x, &a ) でしょうか?
それはそうと動的に振る舞いを変更したい場合は Strategy パターンを使うといい感じに仕上がります。
例示されていたコード片でいうと以下のような感じです。
#include <iostream>
int myint1 = 1, myint2 = 100;
struct MyClass;
struct StrategyPtn
{
virtual void sub( int x, MyClass* myclass ) = 0;
};
struct MyClass{
int z;
StrategyPtn * _strategy;
void func( int x )
{ _strategy->sub( x, this ); }
};
struct Strategy1 : public StrategyPtn
{
virtual void sub( int x, MyClass* myclass )
{ myclass->z = x + myint1; }
};
struct Strategy2 : public StrategyPtn
{
virtual void sub( int x, MyClass* myclass )
{ myclass->z = x + myint2; }
};
int main( int argc, char** args )
{
MyClass a, b;
Strategy1 foo1;
Strategy2 foo2;
a._strategy = &foo1;
b._strategy = &foo2;
a.func(1);
b.func(2);
std::cout << " a.z = " << a.z << std::endl;
std::cout << " b.z = " << b.z << std::endl;
a._strategy = &foo2;
b._strategy = &foo1;
a.func(1);
b.func(2);
std::cout << " a.z = " << a.z << std::endl;
std::cout << " b.z = " << b.z << std::endl;
return 0;
}とはいえ、計算に使うグローバル変数を変更する程度なら素直にメンバ変数に int への参照を持たせて
コンストラクタで代入しちゃうほうが楽だとはおもいます。
■
01/14 おかゆ嫌いが昂じて倒れた私は家族によりビョウインなるおかゆ嫌い更正施設に叩き込まれた。 現れたイシャは私をベッドに寝かせると2日の絶食を言い渡した。 明後日からはおかゆ嫌いの治療が始まるらしい。恐ろしいことだ。 隣にも同じような患者が寝ており、話を聞いてみると彼もおかゆ嫌いであり、 明日からは無理矢理食べさせられるという。とりあえず励ましておく。 再度現れたイシャの手により血管に針をさされ動けなくされた。 この針から他人の血を入れるらしい。私のおかゆ嫌いの原因は血液にあるとでもいうのだろうか。 01/15 今日もまだ絶食、なにも口にすることができない。空腹で目が回り、トイレで倒れそうになった。 となりの彼は泣きそうな顔でおかゆを口にはこんでいる。軽く嘔吐したようだ。 明日からの自分の運命を思い恐怖する。 01/16 他人の血を入れる治療とやらは終了。 しかし針は抜いてもらえず、正体不明の液体を血管に流し込まれつづけている。 となりの彼は食事のたびに顔面蒼白になりながらおかゆを食べている。 昼になり、ついに私もおかゆを食べさせられることになった。 しかし、丸二日以上なにも口にしていない空腹に我慢できず無理をして食べる。 まずいまずいと思いながら30分ほどかけて食べ終わったが、気分が悪い。 01/17 となりの彼は表情がなくなりつつあり、時々うわごとのように「おかゆ…」とつぶやいている。 おかゆ(と一緒に出される正体不明の物体)以外のものを食べることを禁じられているため、 空腹でしかたない。 おかゆでもいいので食べたいと思ってしまい、はっとした。 01/18 となり彼、姿が見えな。 退院するとは聞ていないで、心配。 01/19 よる、からだじゅうさむいさむい。 あたかいおかゆ、たべたい 0 おかゆ うま
日記はここで途切れている。
*1:この日記は一部フィクションです。入院の原因とか
■
なんとかβ版を納入完了。
説明会も上手くこなせたようだし一安心できました。
特に先週からは会社に缶詰になっていて、家に帰ってくるのは10日ぶりくらい。
よく言われるデスマーチというほどでもないけれど、やっぱりしんどいものはしんどい。
最後の方はIMEをオンにしたままコーディングしていてもしばらく気付かない(タイプしながら画面を見ているにも関わらず!)ことがあったほどの状態でしたが、これでゆっくり眠れそうです。
振り返ってみると作業している時間と同じくらい、他のところの作業の完了待ちの時間があったのが反省材料。
コードを書いている人の他の人の作業待ちになるのはある程度仕方ないとしても、
リソース待ちで時間を食うことが結構あったのはプロジェクト序盤から中盤にかけての
スケジューリングに何かしら問題があったのだろうと。
とにかく、次の1月半ばに向けての調整は十分出来ている(と思っているだけ)ので、
今年の年末は少しは余裕がありそうです。
なんにせよ(正確にはまだですが)終わってよかった。