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