zoukankan      html  css  js  c++  java
  • 第五次作业

    第五次作业

    1.作业简介

    当我们在讨论多态性的时候,通常会用重载函数进行举例,而这次发现的问题主要在重载运算符上,因此我希望通过对重载运算符的测试来得出一个结论。

    2.作业过程

    我们想知道为什么前置运算符和后置运算符会有区别,因此设计了一个实验来证明它:

    //
    #include "pch.h"
    #include <iostream>
    using namespace std;
    class clock {
    public:
    	clock(int x = 0) :a(x) {}
    	void show()const { cout << "现在a的值为:" << a << endl; };
    	clock& operator++() {
    		a++;
    		return *this;
    	}
    	clock operator++(int) {
    		clock old = *this;
    		++(*this);
    		return old;
    	}
    private:
    	int a;
    };
    int main()
    {
    	clock x(0), y(0);
    	y = x++;
    	x.show();
    	y.show();
    	y = ++x;
    	x.show();
    	y.show();
    	return 0;
    }
    
    

    在这里插入图片描述
    得到最终结果如预期那样。

    3.作业总结

    通过这次作业,我能感受到前置和后置运算符的区别,通过x++和y=x++能明显发现当没有另一个同类型的对象接收x的值时,前置++和后置++其实没有区别,最终结果都会+1,但如果设置了一个对象去接收它,那么就会产生加减的顺序问题。前置运算符设置&是为了实现数据的共享和传递,但后置运算符不能设置&,否则将得到与前置运算符一样的结果。

  • 相关阅读:
    希尔排序
    折半插入排序
    自学git心得-2
    读书笔记-1 《人月神话》
    USTCCourseCommunity 项目介绍
    自学git心得-1
    HDU 2006 求奇数的乘积
    HDU 2007 平方和与立方和
    HDU 2005 第几天?
    HDU 2004 成绩转换
  • 原文地址:https://www.cnblogs.com/lqk0216/p/11746875.html
Copyright © 2011-2022 走看看