C++ 返回堆栈中的值-C++;

C++ 返回堆栈中的值-C++;,c++,stack,dereference,C++,Stack,Dereference,我有以下定义: Stack<ASTNode*>* data; 我不确定语法是什么,也不知道如何取消引用 提前感谢,, Hristo这取决于你需要多少信息。如果您只需要堆栈顶部对象的地址(可能足以进行调试,我想这取决于您正在做什么),那么答案很简单: cout << "top of stack is..." << data->peek() << endl; 这取决于你需要多少信息。如果您只需要堆栈顶部对象的地址(可能足以进行调试,我想这取决

我有以下定义:

Stack<ASTNode*>* data;
我不确定语法是什么,也不知道如何取消引用

提前感谢,,
Hristo

这取决于你需要多少信息。如果您只需要堆栈顶部对象的地址(可能足以进行调试,我想这取决于您正在做什么),那么答案很简单:

cout << "top of stack is..." << data->peek() << endl;

这取决于你需要多少信息。如果您只需要堆栈顶部对象的地址(可能足以进行调试,我想这取决于您正在做什么),那么答案很简单:

cout << "top of stack is..." << data->peek() << endl;

cout假设您的ASTNode类具有重载运算符假设您的ASTNode类具有重载运算符您要查找的语法应该如下所示:

cout << "top of stack is... " << ? << endl;
cout << "top of stack is... " << *(data->peek()) << endl;
std::ostream& operator<<(std::ostream &strm, const ASTNode &node) {
  return strm << node.name << ": " << node.value;
}

您要查找的语法应该如下所示:

cout << "top of stack is... " << ? << endl;
cout << "top of stack is... " << *(data->peek()) << endl;
std::ostream& operator<<(std::ostream &strm, const ASTNode &node) {
  return strm << node.name << ": " << node.value;
}

是的,现在编辑;自从我回答这个问题后,ASTNode*被添加到了问题中;自从我回答,AsNoTeNd就被添加到这个问题中。你知道C++已经有了一个栈类,对吗?@ Jalf猜测他被禁止使用它来做学校作业,想自己学习,或者被告知他不能用它来做一个求职面试代码测试。你知道C++已经有了一个栈类。是吗?@jalf猜测他被禁止在学校作业中使用它,想自己滚动学习,或者被告知不能在工作面试代码测试中使用它。