2

Qt Creator のソース コードを読んでいます。C++ でstructa を使用するよりもa を使用する方が適切なのはどのような場合ですか?class

4

4 に答える 4

4

これは、純粋に個人的な好みやコーディング規約の問題です。structclassは C++ でも本質的に同じですが、違いはデフォルトのアクセス指定子であり、基本クラスpublicは astructおよびprivatea 用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互換的に宣言することもできます。

于 2013-04-27T05:29:37.467 に答える
1

デフォルトのアクセス (構造体 => パブリック、クラス => プライベート) 以外に違いはありません。読みやすくするために、単純な古い C 構造体 (データのみ) を定義するとき、またはメンバー/メソッドの大部分がパブリックであるときに、構造体を使用することを好みます。

于 2013-04-27T05:30:27.150 に答える
1

struct記録として考えています。それらは変数をまとめており、関数呼び出しなどの間接的な方法で構造体メンバーにアクセスして変更したい場合。たとえば、データ項目のグループをまとめて書き込んでファイルにダンプしたり、ネットワーク経由で送信したりする場合、クラスを使用すると、コードが読みにくく、理解しにくくなる可能性さえあります。

于 2013-04-27T05:33:39.860 に答える
0

何の機能も持たない Plain Old Data の方が適しているかもしれません。C++ では、 と の唯一の違いは、 for ではなくメンバーがデフォルトでclassあるstructということです。structpublicprivateclass

于 2013-04-27T05:29:20.277 に答える