1

関数と呼ばれるものを知る方法がC++にあるかどうか疑問に思いましたか?JavaまたはJavaScriptのthisキーワードのように。

たとえば、リンクリストにアイテムを挿入するinsertという関数がありますが、それらの関数insertを呼び出したlinked-listが他の2つの関数を呼び出すようにします。どうすればいいですか?

私は今これを持っています、これは有効ですか?

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

thisC ++でも、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 に答える