错误:请求成员…在. .它是非类类型的

Error: request for member ... in ... which is of non-class type

本文关键字:是非 类型 请求 成员 错误      更新时间:2023-10-16

刚开始学习c++的课程,我不知道这段代码有什么问题!我正在制作一个堆栈类,其中嵌套了一个助手类,称为节点,充当链表。我得到的错误在第12行,是:

Stack.cpp:在析构函数€˜栈::~堆栈()€™:Stack.cpp:十二:错误:要求成员一个€˜getNexta€™在€˜(堆栈(*))->堆栈::nodea€™,非类类型的一个€˜栈::节点*€™

下面是我的代码:

#include "Stack.h"
Stack:: Stack ()
{
  height = 0;
  node = 0;
}
Stack:: ~Stack()
{
  while(node != 0){
    Node *next = *node.getNext();
    delete node;
    node = next;
  }
  node = 0;
}

和这是我的头文件:

using namespace std;
class Stack
{
 private:
  int height;
  class Node{
    private:
      int data;
      Node* next;
    public:
      void setData(int x){
        data = x;
      }
      void setNext(Node* x){
        next = x;
      }
      int getData(){
        return data;
      }
      Node* getNext(){
        return next;
      }
    };
  Node* node;
public:
  Stack();
  ~Stack();
  void push(int x);
  int pop();
  int peek();
  int getHeight();
  bool isEmpty();
};
 Node *next = *node.getNext();
应该

Node *next = (*node).getNext();

由于.的运算符优先级高于*的遵从运算符。

你也可以使用:

Node *next = node->getNext();