C语言关键字

2016-10-19  本文已影响0人  踩在浪花上00

complex.h

#ifndef COMPLEX_H

#define COMPLEX_H

#include using namespace std;

class Complex

{

public:

//explicit :防止隐士类型转换

//explicit Complex(float real = 0, float vir = 0);

Complex(float real = 0, float vir = 0);

~Complex();

//类型转换函数无需写返回值类型,但是函数定义中必须要有返回值

operator int();

operator float();

void value();

friend Complex operator +(Complex &c1, Complex &c2);

friend Complex operator -(Complex &c1, Complex &c2);

private:

float m_fReal;

float m_fVir;

};

Complex operator +(Complex &c1, Complex &c2);

Complex operator -(Complex &c1, Complex &c2);

complex.cpp

de "complex.h"

Complex::Complex(float real, float vir)

{

m_fReal = real;

m_fVir = vir;

}

Complex::~Complex()

{}

Complex Complex::operator+(int data)

{

Complex com;

com.m_fReal = m_fReal + data;

com.m_fVir = m_fVir;

cout << "Complex::operator+(int data)" << endl;

return com;

}

Complex Complex::operator+(float data)

{

Complex com;

com.m_fReal = m_fReal + data;

com.m_fVir = m_fVir;

cout << "Complex::operator+(float data)" << endl;

return com;

}

Complex::operator float()

{

cout << "operator float()" << endl;

return (m_fReal + m_fVir) * 0.05;

}

Complex::operator int()

{

cout << "operator int()" << endl;

return m_fReal;

}

void Complex::value()

{

cout << '(' << m_fReal << ")+(" << m_fVir

<< ")i" << endl;

}

Complex operator +(Complex &c1

, Complex &c2)

{

Complex c;

c.m_fReal = c1.m_fReal + c2.m_fReal;

c.m_fVir = c1.m_fVir + c2.m_fVir;

cout << "operator+" << endl;

return c;

}

Complex operator -(Complex &c1

, Complex &c2)

{

Complex c;

c.m_fReal = c1.m_fReal - c2.m_fReal;

c.m_fVir = c1.m_fVir - c2.m_fVir;

cout << "operator-" << endl;

return c;

}

main.cpp

nclude "complex.h"

void fun(Complex com)

{

com.value();

}

int main()

{

//int 转换成Complex:隐士类型转换

//fun(23);

Complex com(3, 7);

com.value();

Complex com2(4, 9);

com2.value();

Complex com3 = com + com2;

com3.value();

Complex com4 = com - com2;

com4.value();

return 0;

}

#endif // COMPLEX_H

上一篇下一篇

猜你喜欢

热点阅读