xjw666

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;
}

  

posted on 2020-12-04 10:22  xjw666  阅读(73)  评论(0编辑  收藏  举报

导航