🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: japan.comp.lang.visual-c++
Article #22

Re: コンストラクタ内を避けるべき処理

#22
From: Nakamura Akifumi
Date: Sat, 06 May 2000 00:00
37 lines
2674 bytes
中村っす。ごみ。

japan.comp.lang.visual-c++,fj.comp.lang.c++ の <8ev2fq$pqb$1@news.cds.ne.jp> の
記事において 2000年05月06日(土) 03時04分22秒頃、
Yuki Shiino <yuki@cds.ne.jp>さんは書きました。

>>   必要なエラー処理は全て入れ、エラー発生は例外で伝えます。
>
> エラーの別の通知法としては、エラー状態を保持するというものも
>あります。
>
>    ifstream fin("DataFile");
>    if (!fin) error();  // if (fin.fail()) error();
>
>の様なパターンです。例外を投げた方が良いのか、エラー状態を保持
>した方が良いのかは、複数の判断基準によって決まる難しい問題でしょ
>う。

C++って面倒だなあ。
delphiやjavaやRuby(関係ないか)みたいに
	1:オブジェクトを他のオブジェクトに「埋め込む」ことを許さない。
	  オブジェクト変数は全部参照だけ。
	2:オブジェクトの内容は、ほっとけばNULLで埋め尽くされてる。
とすれば、面倒は控えめにいっても半分くらいに減るのにね。

delphiだとさらに
	3:コンストラクタで例外出たらデストラクタが呼ばれる
ので、結局デストラクタではメンバ変数のうちNULLになってない
(=有効な)物のみを後片付けするようにすればいいし、
	4:変数の値がNULLでなけばデストラクタを呼ぶ、という
	  freeという「非virtualな(笑)」メソッドが用意されている(^^;
ので、NULLかどうか判定するif文すら書く必要がない。
多くの場合何も考えずとも対処できる(したことになる)。めちゃ楽。

これを知るまで、非virtualメソッドに効率以外の積極的な利用価値が
あるとは知りませんでした(^^;。まぁNULLすらオブジェクトである
ような処理系にすればいいとも言いますが…
Technical Details
Message-ID: <20000506121624BXQ04723@nifty.ne.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <8es3l3$kas$1@pin2.tky.plala.or.jp> <8eu2vv$pun$1@newsjp.mbn.or.jp> <8ev2fq$pqb$1@news.cds.ne.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: f71b3,d8108d20cf4aa80b
X-Google-Attributes: gidf71b3,public
X-Google-Thread: 10a2c7,d8108d20cf4aa80b
X-Google-Attributes: gid10a2c7,public
From: BXQ04723@nifty.ne.jp (Nakamura Akifumi)
Subject: Re: コンストラクタ内を避けるべき処理
Date: 2000/05/06
Message-ID: <20000506121624BXQ04723@nifty.ne.jp>
X-Deja-AN: 619846630
X-Posting-Software: WSNews 2.027 (UNREGISTERED)
References: <8es3l3$kas$1@pin2.tky.plala.or.jp> <8eu2vv$pun$1@newsjp.mbn.or.jp> <8ev2fq$pqb$1@news.cds.ne.jp>
Content-Type: Text/Plain; charset=ISO-2022-JP
X-Complaints-To: -
X-Trace: nw042.infoweb.ne.jp 957583866 22560 202.219.30.132 (6 May 2000 03:31:06 GMT)
Organization: Nifty News Service
Mime-Version: 1.0
NNTP-Posting-Date: 6 May 2000 03:31:06 GMT
Newsgroups: japan.comp.lang.visual-c++,fj.comp.lang.c++