代码如下 | 复制代码 |
#include <iostream> using namespace std; class num { public: int x; num(){n=1;cout<<”构造函数执行!n”;} num(int i){n=i;cout<<”带参数的构造函数执行!n”;} num(const num&s){this->n=s.n;cout<<”复制构造函数执行!n”;} ~num(){cout<<”析构函数执行!n”;} int get()const{return n;} void set(int x){n=x;} void add(){++n;}//定义自加函数错误: expected ‘;’ before ‘:’ toke const num &operator ++(){//前置自加,const关键是防止返回后再自加,也就是避免++++之类的出现, 引用‘&’的使用为了避免复制构造函数的调用,operator是c++关键字函数名,与普通重载数相同,c++已定义运算符的类型,其后的++表示重载的是自加运算符,{}里面的是实现部分 ++n; return *this;//*shis为原始对象 const num operator ++(int o){//后置自加,参数o的作用只是作为与上面的函数区别,const关键是防止返回后再自加,也就是避免++++之类的出现, 引用‘&’的使用为了避免复制构造函数的调用,operator是c++关键字函数名,与普通重载数相同,c++已定义运算符的类型,其后的++表示重载的是自加运算符,{}里面的是实现部分 } |
时间: 2024-09-21 00:43:05