c++ - c++ 编译器无法识别已声明的字符串函数 C2039
问题描述
我收到一个错误'convertInfixToPostfix' is not a member of stack
,尽管我已经在stack.h
文件中声明了它。
这是我的stack.h
文件:
class stack{
string convertInfixToPostfix(string infix);
}
它的定义在function.cpp
文件中:
string stack::convertInfixToPostfix(string infix)
{
string postfix;
string infixExpression;
cout << "Enter your infix expression : " << endl;
getline(cin, infixExpression);
return postfix;
}
该函数从以下位置调用main.cpp
:
cout << " evaluation of postfix :" << s.convertInfixToPostfix();
解决方案
有多少参数convertInfixToPostfix
?
string convertInfixToPostfix(string infix);
你提供了多少参数?
s.convertInfixToPostfix()
我希望你能看到问题。
不是你问的问题,而是根据提供的少量信息,我会说你有一个设计问题。将中缀转换为后缀是一个使用堆栈的过程。但这并不意味着该进程应该是堆栈类的成员。除了将中缀转换为后缀之外,堆栈还有许多用途,并且堆栈的大多数用户不会对中缀到后缀的转换感兴趣。
因此,仅使用常见的堆栈操作编写堆栈类,然后在单独的代码段中使用该堆栈类,该代码执行中缀到后缀的转换。
这是一个班级设计问题,现在可能不在你的脑海中,但它是一个重要的问题,随着你的经验越来越丰富,你会意识到这一点。
推荐阅读
- r - R StepReg逐步给出'y'应该是数字或字符向量
- python - 如何在 seaborn / matplotlib 中绘制和注释分组条形
- arrays - 如果同一行中的其他单元格具有值,则寻找一种隐藏单元格内容的方法
- r - ggplot 两种颜色 geom_point 与 alpha
- ios - Xcode 11、Swift 5、iOS 堆栈视图问题/挑战
- python - 熊猫在做合并操作时做 concat 而不是合并
- python - 如何在 x 轴上设置相同的值并在 matplotlib 中命名一组子图
- javascript - 如何在 playwright 中运行自定义 js 函数
- java - 如何使用 Fabric 获取 minecraft 路径
- python - 多帧,多按钮和标签,图像变化,Tkinter