Rumah  >  Soal Jawab  >  teks badan

c++ - 类名之后直接跟()是什么意思?

一道题目的答案程序如下,我不明白main()中的第一句话Foo()是什么意思:

#include <vector>
#include <iostream>
#include <algorithm>

using std::vector; using std::sort;

class Foo {
public:
    Foo sorted() && ;
    Foo sorted() const &;
private:
    vector<int> data;
};

Foo Foo::sorted() && {
    sort(data.begin(), data.end());
    std::cout << "&&" << std::endl; // debug
    return *this;
}

Foo Foo::sorted() const & {
        Foo ret(*this);
        sort(ret.data.begin(), ret.data.end());
        return ret;

    std::cout << "const &" << std::endl; // debug

                                         //    Foo ret(*this);
                                         //    ret.sorted();     // Exercise 13.56
                                         //    return ret;

    return Foo(*this).sorted(); // Exercise 13.57
}

int main()
{
    Foo().sorted(); 
    Foo f;
    f.sorted(); // call "const &"
}
PHP中文网PHP中文网2764 hari yang lalu520

membalas semua(1)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 13:03:50

    这是类的构造函数吧

    balas
    0
  • Batalbalas