C++匿名对象

 

  1. C++中的匿名对象是pure RValue, 因而不能作为引用传进去。
  2. 匿名对象只存在于构造该对象的那行代码,离开构造匿名对象的哪行代码后立即调用析构函数。
#include <iostream>

using namespace std;
class Test {
public:
    int s;
    Test( int n ):s(n) {}
    friend ostream &operator <<(ostream &os,Test&a){
        os<<a.s;
        return os;
    }
};

int main()
{
    cout<<Test(5).s<<endl;//correct
    //cout<<Test(5)<<endl;//CE
    return 0;
}

 

posted @ 2018-03-18 15:39  TobicYAL  阅读(247)  评论(0)    收藏  举报