跳转至

self10

约 291 个字 预计阅读时间 1 分钟

1. Copy ctor

1.1 函数返回的拷贝构造

  • 如果不优化的话会拷贝两次:
    • 第一次是发生在return的地方,把本地的对象拷贝到预留的空间里;
    • 第二次把预留空间里的对象拷贝到你要承接的main函数中的本地变量中;

2. 运算符重载

2.1 运算符

  • 可以重载的运算符image-20221205171028658
  • 不能重载的运算符image-20221205171102079

2.2 要求与限制

  • image-20221205171141808

2.3 写法

  • image-20221206130138588
member function
  • image-20221206131958996
  • z = 3 + y 就不行,因为这样就不存在receiver了;

  • 双目运算符image-20221206132328561

  • 单目运算符image-20221206161418351
global function
  • image-20221206155037850

  • image-20221206161519598

  • image-20221206161904908

2.4 选择

  • 单目运算符成员函数,image-20221206161948169

  • 双目作为非成员(设置为友元函数);

  • image-20221206162433278

2.5 一些注意事项

  • 如果运算符不会修改运算数,那么传进来的引用是const,作为成员函数也是const;即除了跟赋值相关的,还有两个流运算符,其他都要加const;

  • 运算符结果应该返回一个const对象,逻辑运算符则返回bool;

2.6 一些样板

正常的
  • image-20221206163642114
自增自减
  • image-20221206163938040

  • image-20221206163951745

  • image-20221206164020024

关系运算符
  • image-20221206165210901

  • 互相调用image-20221206165249832

image-20221206165303837

[]
  • image-20221206165345965

  • 参数类型不一定是整数,返回值是整数;

本文总阅读量