#include <iostream> using namespace std; /** *演示修饰符重载 */ class Chicken { private: int weight; public: Chicken(int weight) { this->weight = weight; } ~Chicken() { delete this; } int getWeight(); void setWeight(int weight); friend int operator +(Chicken & a,Chicken & b); int operator -(Chicken & a); friend int operator ++(Chicken & a); int operator --(); friend int operator ++(Chicken & a,int); int operator --(int); }; int Chicken::getWeight() { return this->weight; } void Chicken::setWeight(int weight) { this->weight = weight; } int operator +(Chicken & a,Chicken & b) { return a.weight+b.weight; } int Chicken::operator -(Chicken & a) { return this->weight-a.weight; } int operator ++(Chicken & a) { a.weight ++; return a.weight; } int Chicken::operator --() { this->weight --; return this->weight; } int operator ++(Chicken & a,int) { int b = a.weight; a.weight ++; return b; } int Chicken::operator --(int) { int b = this->weight; this->weight --; return b; } int main() { Chicken a(20); Chicken b(10); cout << a.getWeight() << endl; cout << b.getWeight() << endl; cout << a-b << endl; cout << a+b << endl; cout << ++a << endl; cout << a.getWeight() << endl; cout << --a << endl; cout << a.getWeight() << endl; cout << a++ << endl; cout << a.getWeight() << endl; cout << a-- << endl; cout << a.getWeight() << endl; return 0; }
主要有两种方式:利用友元、类成员方法。