编程的名称是什么?

时间:2016-03-23 22:47:43

标签: c++

我在wxWidgets和其他C ++代码风格中看到了这一点:

#include <iostream>

class Foo {
    int _x;
    int _y;
    public:
        Foo () : _x(0), _y(0) {}
        Foo (int x, int y) : _x(x), _y(y) {}
        int get () const { return _x+_y; }
};

int GetFoo (const Foo& f) {
    return f.get ();
}

int main () {
    Foo f1(2,3); // create object with values
    std::cout << "Value1: " << f1.get () << '\n'; // access object method
    std::cout << "Value2: " << GetFoo(Foo(3,7)) << '\n'; // How do you call this?
    return 0;
}

当您使用带有某些值的直接类时。我将其命名为将直接类作为对象,但我想知道该用语。感谢。

2 个答案:

答案 0 :(得分:5)

您可能正在寻找术语&#34;临时值&#34;或&#34;临时&#34;。

这通常描述了一个对象,该对象在执行单个表达式或其中一部分的过程中被实例化,之后对象立即被销毁。

这是在这里发生的事情。

答案 1 :(得分:1)

功能

int GetFoo (const Foo& f) {
    return f.get ();
}

采用常量参考(const Foo& )。术语引用是特定于c ++的。一般术语是别名;两个描述相同实例的名称。 const限定符还允许隐式转换生效。

GetFoo(Foo(3,7))

创建一个持续函数调用持续时间的临时对象。临时Foo(3, 7)没有名称,但它在函数中被别名或引用。