当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

C++中按值返回和返回值优化代码

    C++和C语言相比,最为人诟病的就是其性能问题,通常一条C语言经编译器解释后,可以固定转换成5—10条汇编语言,但是一条C++语言,就没有这么幸运了,可能会是3条汇编语言,也可能是300条。C++影响性能的原因很多,其中一个就是临时对象的创建和销毁。这里我简述一种减少创建临时对象的方法--返回值优化问题

    很多时候,函数需要按值返回,这其中就会不可避免地涉及到临时对象的创建和销毁。假设定义如下的Complex类:

 class Complex

{

 friend Complex operator +(const Complex&,const Complex&);

public:

 Complex(double r=0, double i=0):real(r),imag(i)

 {

  cout<<\"I\'m in constructor\"<<endl;

 }

 Complex(const Complex& c):real(c.real),imag(c.imag)

 {

  cout<<\"I\'m in copy constructor\"<<endl;

 }

 Complex& operator =(const Complex& c)

 {

  real=c.real;

  imag=c.imag;

  cout<<\"I\'m in assignment\"<<endl;

  return *this;

 }

 void print()
 {
  cout<<real<<\"+\"<<imag<<\"i\"<<endl;
 }

 ~Complex()
 {
  cout<<\"I\'m in destructor\"<<endl;
 }

private:

 double real;

 double imag;

};

 

共4页 首页 上一页 1 2 3 4 下一页 尾页 跳转到
相关内容
赞助商链接