调用函数的C ++ struct对象

时间:2012-04-11 01:29:17

标签: c++ function object struct

这简直让我感到沮丧到了内爆的边缘。我不知道为什么我不知道这一点,但是,我需要一些帮助。或者至少有一些修辞问题可以引导我朝着正确的方向前进。

我有一个叫做表达式的对象。该对象是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;
}

如果result = 0,则表达式已成功转换为PostFix表示法,否则将失败。

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

我不是要求代码,因为我觉得这是一个非常简单的问题,而我只是一个大脑放屁。所以,如果有人能够请我正确的方向,我会很感激。感谢

1 个答案:

答案 0 :(得分:2)

致电时

expr1.toPostfix(expr2);

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

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

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

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