繁体   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