K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>SEさんとの議論がアツいので、こちらの返信が遅くなってしまいました。 > >> カプセル化という言葉に対して、きっちりとした完全な意味を求めてるのだ >>ろうと思いますが、私はそこまでのことを意識してこの言葉を使っていません。 > >ええと、用語定義の問題と言うよりは、(私の感覚では)かなり実用的な問題でして。 > >> 必要なこと意外一切情報を出さないほうがいいのか。内部がある程度想像 >>できるほうがいいのか?Cはたとえ使えなくともクラスのデータやメソッドが見 >>える。これが良いか悪いかでしょう。私は後者のほうが気分的には良いです。 > >チームで開発するとき、ライブラリとそれを使うアプリケーションがあったとして、 >これらを平行して開発することがあります。そういう場合、ライブラリの >ヘッダファイルだけ先に作ってしまえばアプリケーション側のコンパイルが通せますが、 >その時、空実装のメソッドを暫定で書いて後で差し替えるような作業は >バージョン管理が面倒になるので避けたい。また、ヘッダファイルはドキュメント的な >性格も大きいですから、ここに実装やprivateメンバを書いてごちゃごちゃして >しまうのも避けたい。 > >また、ヘッダファイルの依存関係が漏洩するという問題もあるでしょう。 >あるライブラリがウインドウに絵を描いたりするのでprivateメンバで >windows.hで定義されている型などを使っていたりすると、それを使う人にまで >もれなくwindows.hがプレゼントされ名前空間が汚染されてしまったりとか。 > >……という話題が昔JavaHouseであったとき、 > >http://java-house.jp/ml/archive/j-h-b/048357.html#body >http://java-house.jp/ml/archive/j-h-b/048360.html#body > >これを問題と思わない人が多かったようなので、私のような心配をするのは >少数派なのかもしれませんけれども。 > >> 言語の設計において、理想的なものを作っていくのもあります。私の場合は >>目的が実現できれば簡単なものでいいと思って設計しています。その代表が >>#defineです。古い仕様で問題点も内包しますが、実に使いやすく融通が利きます。 >>今では#defineはあまり良くないとされていますが、私は利点を選びました。 > >これは同意です。「わかって使う」分には、#defineは便利ですよね。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!