C++运算符重载


c++运算符重载

1.运算符重载基本定义

把含运算符的表达式转换成对运算符函数的调用,系统会自动生成类默认的运算符如=,对类中的成员变量进行复制,基本类型直接复制,成员对象则调用复制构造函数。实现方法按照定义位置可分为成员函数运算符重载以及常规函数运算符重载。

2.运算符重载基本形式

// 返回值类型 operator 运算符 (形参表)
//{
//	...
//}
// 成员函数类型
MyClass operator+ (const MyClass &t){
  return MyClass(this->a+t.a);
}
// 普通函数类型,必要时可以声明为对应类的友元函数
MyClass MyClass- (const MyClass &a,const MyClass &b){
  return MyClass(this->a-t.a);
}

2.赋值运算符重载

赋值运算符是典型的只能重载为成员函数的运算符。类似的还有()、[]、->,如果我们能在全局函数中重载赋值运算符,那么我们就能够写出1=a等类似的荒谬的代码,除此之外,赋值运算符也会和系统默认生成的复制运算符冲突


文章作者: f19
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 f19 !
  目录