C++类的运算符重载和转换函数结合的问题
举例,类成员函数重载运算符operator+,参数也为该类的引用。同时定义一个类到int的转换函数,那么在主函数中运行对象相加就有两种可能。1. 对象在隐式转换后变成int类型再进行int类型的相加得到一个int类型的结果;2. 对象运用重载的+运算符得到一个对象结果 ,该对象自动隐式转换成int类型赋给放结果的变量,经过Visual studio2019 C++14测试后实际运行第一种方法。
#include"iostream"
using namespace std;
class a
{
private: int b=10;
int c = 20;
public:
a& operator +(a&);
operator int();
};
int main()
{
a test1;
a test2;
int b = 0;
b = test1 + test2;
std::cout << b;
}
a& a::operator +(a& e)
{
this->b = this->b + e.c;
return *this;
}
a::operator int()
{
return b;
}
浙公网安备 33010602011771号