簡體   English   中英

C ++類對象函數

[英]C++ Class Object Function

我試圖了解這種類型的功能如何工作以及如何使用它。

我假設有一些課我們稱之為測試。

class Test {

}

我在頭文件中看到了這種類型的函數,我試圖找出它的作用。 以及如何正確使用它。

Test& testFunction();

感謝幫助。

函數名稱前面的內容是函數返回的類型。 在這種情況下, testFunction返回一個Test對象。 &在這種情況下(引用)意味着它將返回一個Test reference。 如果您希望在調用函數時修改返回的對象,這一點很重要。 或者以“按價值返回”無法實現的某種方式使用它。

您的代碼並沒有告訴我們您將使用返回值做什么,但這是一個很常見的例子:

Test & T::f() {
    // do something

    return *this;
}

*this是調用其方法.f的實際對象。 這里特別的是,因為我們正在返回一個引用,所以我們可以在保持原始對象的同時鏈接調用。 *this每次都是這個*this 以價值回報,我們無法做到這一點。 例如:

引用:

Test & T::f() {

    this->x++;

    return *this;

}


int main() {

    Test t;

    t.x = 5;

    t.f().f();

    std::cout << t.x; // 7 as we expect

}

按價值:

Test T::f() { ... } // notice the omission of &

int main() {

    Test t;

    t.x = 5;

    t.f().f();

    std::cout << t.x; // 6

}

t僅更改一次,因為對象在下一次調用時丟失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM