我们知道一个返回对象的函数很难有很高的效率,因为传值会调用对象内的构造函数和析构函数;而一些函数必须要返回对象,这是难以避免的,所以,我们关心的重点,并不是去消除返回对象,而是怎么减少返回对象所用的开销上来;
幸好,编译器支持返回值优化,能让编译器消除临时对象的开销;下面我们考虑简单实现一个有理数的代码:
#include <iostream>
#include<opencv2\core\core.hpp>
using namespace std;
using namespace cv;
class Rational
{
public:
Rational(int x,int y):a(x),b(y){
cout<<"构造函数"<<en