c++ - 类名之后直接跟()是什么意思?
PHP中文网
PHP中文网 2017-04-17 13:01:50
0
1
523

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

认证高级PHP讲师

Antworte allen(1)
刘奇

这是类的构造函数吧

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage