C++でリンクリストを作成したいのですが、クラスを使うか構造体を使うか迷っています。クラスオブジェクトへの参照にポインタを使用し、クラスのみでリンクリストを作成することはできますか? また、C++ の組み込みリストを使用して、クラスのオブジェクトのリストを作成できますか?
3 に答える
4
C++ ではclass
とstruct
は基本的に同じなので、この質問の文脈では違いはありません。
オブジェクトへのポインタを持つことができます:
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++ 標準ライブラリは既にリンク リストを提供していることに注意してください。
- 片方向リスト (c++11): http://en.cppreference.com/w/cpp/container/forward_list
- 双方向リスト : http://en.cppreference.com/w/cpp/container/list
于 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 に答える