大连模板网站制作哪家专业,wordpress只有我可以看,seo建站优化,大型网站开发pdf递增运算符#xff08; #xff09;和递减运算符#xff08; – #xff09;是 C 语言中两个重要的一元运算符。
下面的实例演示了如何重载递增运算符#xff08; #xff09;#xff0c;包括前缀和后缀两种用法。类似地#xff0c;您也可以尝试重载递减运算符…递增运算符 和递减运算符 – 是 C 语言中两个重要的一元运算符。
下面的实例演示了如何重载递增运算符 包括前缀和后缀两种用法。类似地您也可以尝试重载递减运算符 – 。
#include iostream
using namespace std;class Time
{private:int hours; // 0 到 23int minutes; // 0 到 59public:// 所需的构造函数Time(){hours 0;minutes 0;}Time(int h, int m){hours h;minutes m;}// 显示时间的方法void displayTime(){cout H: hours M: minutes endl;}// 重载前缀递增运算符 Time operator () {minutes; // 对象加 1if(minutes 60) {hours;minutes - 60;}return Time(hours, minutes);}// 重载后缀递增运算符 Time operator( int ) {// 保存原始值Time T(hours, minutes);// 对象加 1minutes; if(minutes 60){hours;minutes - 60;}// 返回旧的原始值return T; }
};
int main()
{Time T1(11, 59), T2(10,40);T1; // T1 加 1T1.displayTime(); // 显示 T1T1; // T1 再加 1T1.displayTime(); // 显示 T1T2; // T2 加 1T2.displayTime(); // 显示 T2T2; // T2 再加 1T2.displayTime(); // 显示 T2return 0;
}当上面的代码被编译和执行时它会产生下列结果
H: 12 M:0
H: 12 M:1
H: 10 M:41
H: 10 M:42注意int 在 括号内是为了向编译器说明这是一个后缀形式而不是表示整数。
前缀形式重载调用 Check operator () 后缀形式重载调用 operator (int)。
实例 ( 重载)
#include iostream
using namespace std;class Check
{private:int i;public:Check(): i(0) { }Check operator (){Check temp;temp.i i;return temp;}// 括号中插入 int 表示后缀Check operator (int){Check temp;temp.i i;return temp;}void Display(){ cout i i endl; }
};int main()
{Check obj, obj1; obj.Display(); obj1.Display();// 调用运算符函数然后将 obj 的值赋给 obj1obj1 obj;obj.Display();obj1.Display();// 将 obj 赋值给 obj1, 然后再调用运算符函数obj1 obj;obj.Display();obj1.Display();return 0;
}执行输出结果为
i 0
i 0
i 1
i 1
i 2
i 1实例 (-- 重载)
#include iostream
using namespace std;class Check
{private:int i;public:Check(): i(3) { }Check operator -- (){Check temp;temp.i --i;return temp;}// 括号中插入 int 表示后缀Check operator -- (int){Check temp;temp.i i--;return temp;}void Display(){ cout i i endl; }
};int main()
{Check obj, obj1; obj.Display(); obj1.Display();// 调用运算符函数然后将 obj 的值赋给 obj1obj1 --obj;obj.Display();obj1.Display();// 将 obj 赋值给 obj1, 然后再调用运算符函数obj1 obj--;obj.Display();obj1.Display();return 0;
}执行输出结果为
i 3
i 3
i 2
i 2
i 1
i 2