首页 > 类名之后直接跟()是什么意思?

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

一道题目的答案程序如下,我不明白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 &"
}

这是类的构造函数吧

【热门文章】
【热门文章】