2

C++でリンクリストを作成したいのですが、クラスを使うか構造体を使うか迷っています。クラスオブジェクトへの参照にポインタを使用し、クラスのみでリンクリストを作成することはできますか? また、C++ の組み込みリストを使用して、クラスのオブジェクトのリストを作成できますか?

4

3 に答える 3

4

C++ ではclassstructは基本的に同じなので、この質問の文脈では違いはありません。

オブジェクトへのポインタを持つことができます:

class Foo {};

Foo* = new Foo();
Foo f;
Foo* pf = &f;

structとの違いについてはclass、前者にはパブリック アクセスと継承があり、後者にはプライベート デフォルト アクセスと継承があります。

struct Bar : Foo {
  int a;
  void bar() const;
};

と同じです

struct Bar : public Foo {
 public:
  int a;
  void bar() const;
};

と同じ

class Bar : public Foo {
 public:
  int a;
  void bar() const;
};
于 2012-08-04T19:11:23.860 に答える
3

構造体とクラスの違い:

  • structデフォルトはパブリック アクセス、classデフォルトはプライベート アクセスです。
  • それらから継承する場合、structデフォルトでpublic継承され、classデフォルトでprivate継承されます。

C++ 標準ライブラリは既にリンク リストを提供していることに注意してください。

于 2012-08-04T19:20:59.687 に答える
3

を使用する必要がありますstd::list。それなら、何を使っても構いません。例えば:

std::list<int> listOfInts;

struct Point {
    int x, y;
};

std::list<Point> listOfPoints;

class Line {
public:
    Point a, b;
};

std::list<Line> listOfLines;
于 2012-08-04T19:14:17.727 に答える