Qt Creator のソース コードを読んでいます。C++ でstruct
a を使用するよりもa を使用する方が適切なのはどのような場合ですか?class
4 に答える
これは、純粋に個人的な好みやコーディング規約の問題です。struct
とclass
は C++ でも本質的に同じですが、違いはデフォルトのアクセス指定子であり、基本クラスpublic
は astruct
およびprivate
a 用class
です。
たとえば、次の の 2 つの定義Bar
は同等です。
class Foo {};
struct Bar : Foo {};
class Bar : public Foo {};
ここでも:
class Foo {};
struct Bar : private Foo {};
class Bar : Foo {};
そしてここでも:
class Bar
{
int n; // private
public:
double x; // public
};
struct Bar
{
private:
int n;
public:
double x;
};
Bar
さらに、 asclass Bar
またはstruct Bar
互換的に宣言することもできます。
デフォルトのアクセス (構造体 => パブリック、クラス => プライベート) 以外に違いはありません。読みやすくするために、単純な古い C 構造体 (データのみ) を定義するとき、またはメンバー/メソッドの大部分がパブリックであるときに、構造体を使用することを好みます。
struct
記録として考えています。それらは変数をまとめており、関数呼び出しなどの間接的な方法で構造体メンバーにアクセスして変更したい場合。たとえば、データ項目のグループをまとめて書き込んでファイルにダンプしたり、ネットワーク経由で送信したりする場合、クラスを使用すると、コードが読みにくく、理解しにくくなる可能性さえあります。
何の機能も持たない Plain Old Data の方が適しているかもしれません。C++ では、 と の唯一の違いは、 for ではなくメンバーがデフォルトでclass
あるstruct
ということです。struct
public
private
class