【问题标题】:Declaring class objects as fields in itself [closed]将类对象本身声明为字段[关闭]
【发布时间】:2012-11-29 19:30:31
【问题描述】:

所以我正在尝试创建一个基本上是房间的链接列表,其中存储指向每个房间中上一个和下一个房间的指针。

#ifndef Hospital_Room_h
#define Hospital_Room_h

class Room
{

public:

    Room( Room  const &);
    Room createRooms();

    Room next;
    Room prev;
};

#endif

【问题讨论】:

  • 您这样做有什么问题吗?
  • 欢迎来到 Stack Overflow!在编辑工具栏中,注意标记为{} 的按钮。您可以通过选择其文本并单击该按钮来对您的程序进行编码。我已经为你完成了这个项目。
  • @David:是的,这样做有问题。如果里面必须有两个房间,房间的大小是多少?根据定义,你有sizeof(Room) >= 2 * sizeof(Room),这是不可能的。
  • 那就使用STL链表吧。

标签: c++ class


【解决方案1】:

要声明一个指针需要* 字符,像这样:

Room* next;
Room* prev;

随后使用指针需要* 运算符或-> 运算符,如下所示:

myFavoriteRoom = *(myRoom.next);

myFavoriteWindow = myRoom.next -> window;

如果你正在尝试使用指针,但还不了解它们是如何工作的,我建议你关注good book on C++ programming

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2019-04-05
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多