zoukankan      html  css  js  c++  java
  • c++中复数的递增与递减操作实现

      在标准C++中,实际上是不提供对复数类型递增与递减操作符的支持,复数包含实数与虚数两部分。我通过重载了复数的操作符来实现递增与递减操作。

       

      递增与递减操作都是针对复数的实部来实现的。比如complex<double> cval; cval++只是针对复数实部加1.

    下面是我的详细实现:

       先看看前置操作符的实现形式,是通过引用来进行的,非常简单。

    #include "stdafx.h"
    #include 
    <complex>
    using namespace std;


    inline complex
    <double>& operator++(complex<double> &val)
    {
        
    return val+=complex<double>(1);
    }

      后置操作符的形式与前置类似,为了与前置操作符区分,加了另外一个参数,int类型的,这只是一个额外参数,没什么其它的意义,与前置操作符不同的是,函数的返回值是以传值的方式进行的,而不是以引用的方式传递,只是简单返回原值。

    #include "stdafx.h"
    #include 
    <complex>
    using namespace std;


    inline complex
    <double> operator++(complex<double>&val,int i)
    {
        complex
    <double> oldval = val;
        val 
    += complex<double>(1);
        
    return oldval;
    }

      这两种实现方式非常简单,下面我通过测试程序进行测试:

    #include "stdafx.h"
    #include 
    <iostream>
    #include 
    <complex>
    using namespace std;

    int _tmain(int argc, _TCHAR* argv[])
    {
        complex
    <double> cval(4.0,1.0);
        cout 
    << "before increment:" <<cval<<endl;
        cout 
    << "after increment++:" <<cval++ <<endl; 
        cout 
    <<"after ++increment:" << ++cval <<endl;
        cout 
    << "after increment--:" <<cval-- <<endl; 
        cout 
    <<"after --increment:" << --cval <<endl;



        
    //wait input
        int exit;
        cin 
    >> exit;
        
    return 0;
    }


       递减操作符我就不多讲了,都差不多!忘了今天是Christmas, 对自己说声:Merry Christmas!

      
    Author:repository
    From:  http://repository.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    周总结(第十一周)
    周总结(第十周)
    周总结(第九周)
    周总结(第八周)
    周总结(第七周)
    周总结(第六周)
    周总结(第5周)
    周总结(第四周)
    周记
    补周记
  • 原文地址:https://www.cnblogs.com/repository/p/1916776.html
Copyright © 2011-2022 走看看