1

我想知道 C++ 中是否有办法知道什么叫做函数?就像 Java 或 JavaScript 中的 this 关键字一样。

例如,我有一个名为 insert 的函数,它将一个项目插入到链表中,我希望调用这些函数 insert 的链表调用另外两个函数。我该怎么做?

我现在有这个,有效吗?

bool linked_list::insert( int i )
{
    bool inserted = false;

    if( this.is_present(i) ) /* function is_present is defined earlier checks if an int is already in the linked-list. */
    {
        inserted = true // already inside the linked-list
    }
    else
    {
        this.Put( 0, i ); /* function Put is defined earlier and puts an int in a linked-list at a given position (first param.). */
        inserted = true; // it was put it.

    }
return inserted;
}
4

3 回答 3

2

由于历史原因this是一个指针。使用->而不是..

bool linked_list::insert(int i) {
    bool inserted = false;

    if(this->is_present(i)) {
        inserted = true; // fixed syntax error while I was at it.
    } else {
        this->put(0, i); // fixed inconsistent naming while I was at it.
        inserted = true;
    }
    return inserted;
}

通常根本不需要使用this->;你可以做if(is_present(i))

于 2012-11-16T00:47:34.853 回答
1

this在 c++ 中的工作方式与在 Java 中的工作方式相同。唯一的区别是您需要使用指针this->而不是this. this指针,因此您不能使用点运算符来访问它的成员。

于 2012-11-16T00:48:45.340 回答
0

你为什么不直接调用其他函数linked_list::insert(int)呢?不,它是无效的,你应该把this -> something而不是this.something

于 2012-11-16T00:47:21.453 回答