[英]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.