0

这简直让我沮丧到崩溃的边缘。我不知道为什么我无法弄清楚这一点,但是,我需要一些帮助。或者至少一些反问可以引导我走向正确的方向。

我有一个名为表达式的对象。此对象是 tokenType 标记的结构。

//expression.h file
struct expression
{

    int numTokens ;
    tokenType tokens[MAX_TOKENS_IN_EXPRESSION] ;

    void print() const ;
    ...
}

tokenType 只是一个数字(操作数)或一个符号(运算符)

鉴于此,我的 test.cpp 文件中有这些代码行:

expression expr1 , expr2 ;
...
errorCode = expr1.toPostfix( expr2 ) ;

我必须实现 toPostFix( [parameter] ); 其函数声明如下:

//in expression.cpp
int expression::toPostfix( expression & pfx ) const
{
    int result = 1; 

    //how do I read in the 'expression' that is calling this method???

    return result;
}

如果结果 = 0,则表达式成功转换为 PostFix 表示法,否则不成功。

我遇到的问题是提供的代码中间的注释...如何检索传递给函数的数据???

我不是要代码,因为我觉得这是一个非常简单的问题,只是我的一个大脑放屁。因此,如果有人可以请我朝正确的方向踢我,我将不胜感激。谢谢

4

1 回答 1

2

你打电话时

expr1.toPostfix(expr2);

然后指向的指针expr1作为方法内的(隐藏)指针传递this

这样做的结果(不是双关语)是您可以expression::toPostfix()使用或不使用 using访问被调用对象上的成员函数和变量this->。通常,C++ 程序员this->在访问成员时会省略。

当然,您可以expr2通过在您的方法中使用来访问pfx方法。

我必须说,这是非常基本的 C++ 东西。您可能会考虑通过 C++ 教程来巩固您对事物的掌握。

于 2012-04-11T01:32:07.997 回答