たとえば、C ++の名前空間内でクラスをプライベートにし、他の人が名前空間の外部からクラスにアクセスできないようにする方法:
namespace company{
class MyPublicClass{ ... } // This should be accessible
class MyPrivateClass{ ... } // This should NOT be accessible
}
名前空間にアクセス指定子を設定することはできませんが、クラスには設定できます。
class company {
// Private (default)
class MyPrivateClass { ... };
public:
class MyPublicClass { ... };
};
スコープ演算子を使用して、名前空間の場合と同じようにクラスにアクセスします。
company::MyPublicClass my_public_object;
「public」クラスが「private」クラスにアクセスできる必要がある場合、「private」クラスは「public」クラスである必要がありますfriend
。
別の方法もありMyPrivateClass
ます。それは、パブリックヘッダーファイルに定義を含まないことです。クラスをソースファイルで定義するか、内部でのみインクルードされるプライベートヘッダーファイルで定義します。
どちらを選択するかは、設計とユースケースによって異なります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加