最新回答 / 慕粉3863420
加了引用才能实际交换两个数。引用传递是直接找内存地址,对地址对应的值进行操作,变了就变了。用指针也可以做到。如果不加是按值传递,交换的是临时变量 函数结束后变量就没有,传人的两个数并没有交换值,它们的地址还是放着原来的数。
2016-09-02
已采纳回答 / hust_web
应该是7 6吧 我觉得 因为你的operator++前面返回类型没有加上引用&,所以++s1,首先把s1的5变成6,但是++s1返回了一个临时对象,然后对这个临时对象进行了前置++变成了7,调用print ,而s1调用print还是6。
2016-08-08
最新回答 / simonhuan
大概想明白了:int只相当于一个信号,告诉编译区分前置++和后置++。是一个复制构造函数,当自己没定义的时候由编译器自己创建并调用。 如果以上我的认识有什么不完善的地方,请各位大神完善补充。 谢谢。
2016-08-08
最新回答 / 慕粉3765232
可以到这里 https://www.visualstudio.com/en-us/products/vs-2015-product-editions.aspx 下载免费社区版本 Visual Studio Community
2016-08-02