C++相談室 part34
■ このスレッドは過去ログ倉庫に格納されています
0281デフォルトの名無しさん
NGNGコテハンつけてくれ。
メンバ変数を公開しないというのは、それを公開すると状態の一貫性を
保ちにくくなるから。たとえば文字列クラスで文字列を記憶するバッファと、
文字列長をメンバ変数にしていた場合、それを公開したら容易に矛盾
する状態を作れてしまう。
ソケットも同様で、ソケットを直接ユーザに見せたらソケットのオープン・
クローズ状態などをライブラリ側で把握できなくなってしまい、エラー処理や
assert() による実行時検査が事実上不可能になる。
Win32 のハンドルのように、すでに OS 側で管理機能が入ってる場合は
ともかく、生のソケットやファイルでスクリプタを直接ユーザに露出すると
誤用に対してきわめて脆弱なライブラリになってしまう。小規模なプログラム
ならそれでも良いんだが、規模がちょっと大きくなったり、複数のプログラマが
共同で作業する場合には、そのエラー検出・バグ取りの時間が馬鹿にならん。
■ このスレッドは過去ログ倉庫に格納されています