重载一般二元算术运算符

调用一般二元运算符:

vec2d a{1,2},b{3,6};
double z{1,3};
vec2d c=a+b;//a.operator+(b);函数原型:vec2d vec2d::operator+(vec2d);
vec2d d=a+z;//a.operator(z);函数原型:vec2d vec2d::operator+(double);
vec2d e=z+b;//z.operator+(b);//error vec2d double::operator+(vec2d);
//double类型是内嵌类型,无法重载运算符

函数原型:

struct vec2d
{
	vec2d operator+(vec2d);
	vec2d operator+(double);
	friend   vec2d operator+(double,vec2d);//友元函数
}
vec2d operator+(double,vec2d)
{
//
}
	

猜你喜欢

转载自blog.csdn.net/qq_41932111/article/details/89742533