为什么抛出的匿名对象能用引用接收?
#include
using namespace std;
class MyException
{
public:
MyException()
{
cout << "MyException默认构造函数调用" << endl;
}
MyException(const MyException& e)
{
cout << "MyException拷贝构造函数调用" << endl;
}
~MyException()
{
cout << "MyException析构函数调用" << endl;
}
};
void doWork()
{
throw MyException();
}
void test01()
{
try
{
doWork();
}
//为什么抛出的匿名对象能用引用接收?
catch (MyException& e)
{
cout << "自定义类型捕获" << endl;
}
}
int main()
{
test01();
//当我试着直接用引用接收匿名对象时
MyException& e1 = MyException();// err:非常量引用的初始值必须为左值
return 0;
}