C++调用函数的结构对象

C++ struct object calling a function

本文关键字:结构 对象 函数 调用 C++      更新时间:2023-10-16

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

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

//expression.h file
struct expression
{
    int numTokens ;
    tokenType tokens[MAX_TOKENS_IN_EXPRESSION] ;
    void print() const ;
    ...
}

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

鉴于此,我的测试.cpp文件中有以下代码行:

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

我必须实现到PostFix( [参数] );其函数声明如下:

//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 表示法,否则不成功。

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

我不是在要求代码,因为我觉得这是一个非常简单的问题,只是我的一个脑屁。因此,如果有人能把我踢到正确的方向,我将不胜感激。谢谢

当你打电话时

expr1.toPostfix(expr2);

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

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

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

我必须说,这是非常基本的C++东西。您可以考虑按照C++教程进行操作,以巩固您对事物的掌握。