运算符重载时代码出错
fatal error C1001: INTERNAL COMPILER ERROR
===========================================
#include <iostream>
using namespace std;
class Test
{
public:
Test(int a)//事实上构造函数起的转换作用本质就是产生无名对象
{
Test::a = a;
}
friend Test operator + (Test&,Test&);
public:
int a;
};
Test operator + (Test &temp1,Test &temp2)
{
Test result(temp1.a + temp2.a);
return result;
}
int main()
{
Test a(100);
a = a + Test(10);//显式转换,产生无名对象
a = Test(10) + a;
cout<<a.a<<endl;
a = 50 + 1;//先进行50+1的内置整型的加运算,然后进行a=Test(51)的隐式转换
cout<<a.a<<endl;
system("pause");
}
另外:那几个注释是什么意思?尤其是那个显式转换,产生无名对象,不太明白