⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complex.cpp

📁 《游戏编程指南》配套代码,包括1、2、3、6、8章
💻 CPP
字号:
#include <iostream>
using namespace std;

class complex
{
private:
    double real;
  	double image;
public:
    complex ( ); //缺省构造函数
  	complex (double r, double i); //顺便初始化值的构造函数
   	complex operator +(complex x); //计算A+B
  	complex operator ++( ); //计算++A
  	complex operator --(int); //计算A-
	complex operator =(double x); //把一个double赋给一个complex时该怎么办
	//系统还自动生成了一个complex operator=(complex);,它的实现是简单拷贝
    //所以如果类中有指针成员,它会像默认的拷贝构造函数那样出问题L
	//我们如果要重写它,还要注意检查自己赋给自己的情况
  	void print(); //输出复数
};


complex::complex( )
{
    real=0.0f;
    image=0.0f;
}

complex::complex(double r, double i)
{
    real=r;
  	image=i;
}

complex complex::operator +(complex x)
{
   	complex c;
  	c.real=real+x.real;
   	c.image=image+x.image;
   	return c;
}

complex complex::operator ++( )
{
   	complex c;
	++real;
  	c.real=real;
   	c.image=image;
   	return c;
}

complex complex::operator --(int)
{
	complex c;
  	c.real=real;
   	c.image=image;
    real--;
    return c;
}

complex complex::operator =(double x)
{
	real=x;
	return *this; //按照C++的惯例,返回*this,以便实现链式表达式
}

void complex::print( )
{
    cout<<real<<"+"<<image<<"i"<<endl;
}

void main( )
{
    complex a(1,2);
    complex b(4,5);
    complex c=a+b;
    complex d=++a;
    complex e=b--;
    //complex f=0.234; //这样写现在还不行,因为上面没写相应的拷贝构造函数
					 //你可以试着写一个
    complex f;
    f=a=0.234; //链式表达式
    a.print( );
    c.print( );
    d.print( );
    e.print( );
    f.print( );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -