①
②成对重载时,
+的实现 利用 +=; (不能反,因为+=利用的是非const 返回,这时this非const即可)
+用自由函数实现 1+a;
③
前置++:A & operator++()
后置++:A operator++(int)
④
#include <iostream>
using namespace std;
class A{
public:
void f() {}
};
class B{
public:
A * operator->()
{
return pa;
}
private:
A *pa;
};
class C{
public:
B & operator->(){
cout<<"((c.operator->()).operator->())->f()";
return b;
}
private:
B b;
};
int main(){
C c;
c->f();
}
⑤
new 和delete 本身不能重载(包括三个步骤)
但是其步骤之一 operator new/delete 可以重载
⑥operator new 没有this指针 static的