2017-03-06 16 views
1

フレンド関数がクラスのプライベートメンバーにアクセスするのを防ぐ方法を教えてください。私たちはこれをまったく行うことができますか?フレンド関数がクラスのプライベートメンバーにアクセスするのを防ぐ

この質問はインタビューで尋ねられ、彼はそれができると確信して、彼はファンクタ/機能オブジェクトについてのヒントを与えました。これまでは何も考えられません。私は答えがあればそれに興奮しています。

+5

関数をクラスの「友人」にしないでください。 –

+2

[pimpl](http://en.cppreference.com/w/cpp/language/pimpl)?私が想像できる最も近いもの。 – felix

+1

私はインタビューでそのようなコードゴルピーの質問を理解していません。そのような質問がインタビュー対象者についてどのような情報を提供しますか?それは彼らが応募している役割に役立つでしょうか? 'friend'の唯一の目的は' private'メンバーへのアクセスを許可することです。 –

答えて

2

友人の機能がクラスのプライベートメンバーにアクセスしないようにするにはどうすればよいですか?私たちはこれをまったく行うことができますか?

いいえ、できません。

あなたのクラスの何かがfriendと宣言されると、privateのメンバーにアクセスするためのドアが開きます。

0

カプセル化のアイデアは、(データで動作する)データとメソッドをバンドルし、クラス外のプライベートデータメンバーのアクセスを制限することです。 C++では、フレンド関数またはフレンドクラスもプライベートデータメンバーにアクセスできます。

関連する問題