アクセス指定子 -privateおよびprotected- を C++ 構造体 (クラスではなく) で使用できますか?
また、アクセス修飾子は C に存在しますか?
C には C++ スタイルのアクセス修飾子がありません。ACstructは、他のオブジェクト タイプのメンバーを含む単なる複合オブジェクト タイプです。
C++ では、astructと aclassはほとんど同じです。唯一の違いは、構造体メンバーがpublicデフォルトであり、クラス メンバーがprivateデフォルトであることです。したがって、この:
struct foo {
private:
// ...
};
これと同等です:
class foo: {
// ...
};
これは他の場所で回答されています。
これはprivate、 、public、およびキーワードが定義または定義のprotectedいずれかで等しく有効であることを意味します。structclass
一方、プログラミング スタイルの問題として、アクセス修飾子を使用する場合は、型をclassではなくとして定義することをお勧めしますstruct。これについては意見が分かれますが、私見では、structキーワードはPOD (Plain Old Data)struct型、またはC で sとして定義できる型に使用する必要があります。
厳密に言えば、C++ 構造体は C 構造体とは大きく異なり、C++ クラスとほぼ同じです。しかし、C++ で として定義されているものを見た場合、それstructは C に似たものであると予想します (または少なくとも好みます) struct。
C++ では、構造体はクラスと同じですが、唯一の違いは、クラスのデフォルト スコープであるプライベートとは異なり、デフォルト スコープがパブリックであることです。アクセス指定子はC存在しませんが、結局のところ、それらを何に使用しますか?
はい、 C++ 構造体でpublic, protectedinを使用できます。private
いいえ、アクセス修飾子は C には存在しません。
classC++ では、との唯一の違いはstruct、 a のメンバーがclassデフォルトprivateで であるのに対し、 a のメンバーはデフォルトで であるというstructことですpublic。これは、C++structがメンバー関数、コンストラクター、オーバーロードされた演算子を持ち、.a の他の機能を使用できることを意味しclassます。
structclassc++と大差ありません。デフォルトの可視性は、非公開ではなく公開です。C はそれらをサポートしていません。
C++ におけるastructと aの唯一の違いは、 aのメンバーがデフォルトであり、 aのメンバーがデフォルトであることです。両方で他のものを使用できるのと同様に、両方でアクセス指定子を使用できます。classstructpublicclassprivate
C にはアクセス指定子がありません。
アクセス指定子 (private および protected) を C++ の構造体で使用できますか?
はい。Astructはクラスです。唯一の違いは、指定しない場合のデフォルトのアクセシビリティ ( publicfor struct、およびprivatefor ) です。class
また、C言語でもアクセス修飾子の使用は許可されていますか? アクセス指定子はCに本当に存在しますか??
いいえ、C にはアクセス指定子がありません。