OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

protected と friend の区別(C++)

  • 困ってます
  • 質問No.103394
  • 閲覧数442
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 25% (2/8)

protected と friend はともに情報隠蔽の「抜け道」であるが、両方は大な違いがあるんですけど、それは何ですか?
ぜひ、お願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

protectedはそのクラスの子孫のクラスからのアクセスを許しますが、friendはクラスの系譜を越えて指定のクラスやその中の特定の関数からのアクセスを可能にします。 また、friendは特定の関数(メンバー関数ではない)からのアクセスも可能にします。 ...続きを読む
protectedはそのクラスの子孫のクラスからのアクセスを許しますが、friendはクラスの系譜を越えて指定のクラスやその中の特定の関数からのアクセスを可能にします。
また、friendは特定の関数(メンバー関数ではない)からのアクセスも可能にします。
お礼コメント
gakuse

お礼率 25% (2/8)

natural さん:
とても、いい答えを頂きました、ありがとうございます。
また、宜しく、お願いします。
             gakuse より
投稿日時 - 2001-07-13 14:36:26


  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

「情報隠蔽の抜け道」って表現がどうかなあ、とは思いますが、きっと、 こういう答えを期待しているのかな? friend は、自分の中身をさらけ出す相手を指定します。それに対して、 protected は、さらけ出す相手は自分から派生させたクラスなので、誰が 自分の中身を見るのかを特定できません。 但し、friend は、相手を特定できる代わりに、自分の中身を全てさらけ出し ます。対して、 ...続きを読む
「情報隠蔽の抜け道」って表現がどうかなあ、とは思いますが、きっと、
こういう答えを期待しているのかな?

friend は、自分の中身をさらけ出す相手を指定します。それに対して、
protected は、さらけ出す相手は自分から派生させたクラスなので、誰が
自分の中身を見るのかを特定できません。

但し、friend は、相手を特定できる代わりに、自分の中身を全てさらけ出し
ます。対して、protected は、メンバーのひとつひとつに指定ができるので
さらけ出す情報と、そうじゃないものを区別できます。

喩えると、friend は、特定の人に「鍵」を渡す(その当人にしか使えない)ような
もので、protected は、家計簿だけを鍵の掛かっていない郵便受けに入れて
置くようなものでしょうか。


なんか、C++ 自体を良く分かっていないみたいなので、この回答で意味が通じるか
自信はありません (^^;

# 根本的に意味が違う friend と protected を並べて論じるのが、ちょっと…
お礼コメント
gakuse

お礼率 25% (2/8)

a-kuma さん:
とても、いい答えを頂きました、ありがとうございます。
また、宜しく、お願いします。
             gakuse より
投稿日時 - 2001-07-13 14:37:14
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ