- 233 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:17:11 ]
- >>232
とりあえず設計に関して。 clientがclient_managementを参照するのは良くない。 (少なくとも非constのポインタを持つのは良くない) clientがclient_managementを知っている必要を感じない。 clientのインスタンスをclient_managementに追加するのは、 今回の例ではserverクラスで行うのが妥当か。 例えば、 client* ptr = new client; cmgmt_.add(ptr); clientの削除を行うのも、client_managementに行わせる。 そうじゃなければ何のためにaddしたのかわからん。 複数のclientの管理を統括するためでしょ? delete this;は色んな意味でありえない。というか最悪。 大体、ptr->haandle();の後、ptrが使えなくなるとは絶対誰も考えないから。 その他 socket sock = accept();//clientクラスのオブジェクトを返す → socketが返っているようにみえる new client(&cmgmt_); →思いっきりメモリリーク haandle()メソッドが長い。複数のメソッドに分割すること。 haandle()というメソッド名を見ても何をするメソッドかわからない。 命名が気に入らない →cmgmtを見て、client_managementだとわかったらエスパー。 →メソッド名、クラス名、一時オブジェクト名の区別がつかない。
|

|