2

我想在 C++ 中创建一个链接列表。我很困惑是使用类还是结构。是否可以使用指针来引用类对象并仅使用类创建链接列表?我也可以使用 C++ 的内置列表来创建类对象列表吗?

4

3 回答 3

4

在 C++中classstruct基本相同,所以在这个问题的上下文中,它没有区别。

您可以拥有指向对象的指针:

class Foo {};

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

关于 和 之间的区别structclass前者具有公共访问和继承,后者具有私有默认访问和继承:

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

你应该使用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 回答
3

结构体和类的区别:

  • struct默认为公共访问,class默认为私有访问。
  • 从它们继承时struct默认为public继承,class默认为private继承。

请注意,C++ 标准库已经提供了链表:

于 2012-08-04T19:20:59.687 回答