1. ホーム
  2. c++

[解決済み】C++のクラスのprivateとprotectedのメンバの違いは?

2022-03-26 20:18:53

質問

とはどのような違いがあるのでしょうか? privateprotected C++のクラスのメンバ?

ベストプラクティスの規約では、クラスの外から呼び出されない変数や関数は private -しかし、私の MFC プロジェクトを見ると、MFC は protected .

何が違うのか、どちらを使えばいいのか?

どのように解決するのですか?

プライベートメンバーは、それを定義しているクラス内でのみアクセス可能です。

プロテクテッドメンバーは、それを定義したクラスとそのクラスを継承したクラスでアクセス可能です。

編集:どちらも、そのクラスの友人や、保護されたメンバーの場合はその派生クラスの友人からもアクセスできます。

編集2:あなたの問題の文脈で意味のあるものは何でも使ってください。結合を減らし、ベースクラスの実装を保護するために、できる限りメンバをプライベートにするようにすべきです。チェック C++のよくある質問 をご覧ください。 保護された変数に関するこの質問 も参考になるかもしれません。