【问题标题】:C++ Class Object FunctionC++ 类对象函数
【发布时间】:2012-12-13 17:32:00
【问题描述】:

我正在尝试了解此类函数的工作原理以及您将如何使用它。

我假设有一些类我们称之为测试。

class Test {

}

我在头文件中看到了这种类型的函数,我正试图弄清楚它的作用。以及如何正确使用。

Test& testFunction();

感谢您的帮助。

【问题讨论】:

    标签: c++ class function object reference


    【解决方案1】:

    函数名前面是函数返回的类型。在这种情况下,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 仅更改一次,因为该对象在下一次调用时丢失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多