我怎样才能参考C ++中的函数?

时间:2012-11-16 00:44:26

标签: c++ algorithm linked-list

我想知道在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;
}

3 个答案:

答案 0 :(得分:2)

对于historical reasonsthis是一个指针。使用->代替.

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))

答案 1 :(得分:1)

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

答案 2 :(得分:0)

为什么不直接调用linked_list::insert(int)中的其他功能?不,它无效,您应该放this -> something而不是this.something