考虑到大多数同事使用的是VS2010,改用VS2010 平台进行编译。
练习目的
- 学习类的基本知识,构造函数以及成员函数
- 学习重载操作符
声明代码文件real_num.h:
#ifndef REAL_NUM_H_
#define REAL_NUM_H_
class Realnum
{
public:
Realnum();
Realnum(float r, float i);
void reset(float r=0,float i = 0);
void show()const;
Realnum operator +(const Realnum &t) const;
Realnum operator -(const Realnum &t) const;
private:
float real;
float imaginary;
};
#endif
类函数实现文件 real_num.cpp
#include <iostream>
#include "real_num.h"
using namespace std;
Realnum::Realnum()
{
real = 0;
imaginary = 0;
}
Realnum::Realnum(float r,float i)
{
real = r;
imaginary = i;
}
void Realnum::reset(float r,float i)
{
real = r;
imaginary = i;
}
Realnum Realnum::operator+(const Realnum &t)const
{
Realnum sum;
sum.real = real + t.real;
sum.imaginary = imaginary + t.imaginary;
return sum;
}
Realnum Realnum::operator-(const Realnum &t)const
{
Realnum diff;
diff.real = real - t.real;
diff.imaginary = imaginary - t.imaginary;
return diff;
}
void Realnum::show()const
{
if(imaginary > 0)
{
cout<<real<<"+j"<<imaginary<<endl;
}
else if(imaginary > 0)
{
cout<<real<<endl;
}
else
{
cout<<real<<"-j"<<-imaginary<<endl;
}
}
主函数 main.cpp
// real_num.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "real_num.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
Realnum aa(3.2,-5.3);
Realnum bb(-5.8,9.6);
Realnum cc = aa + bb;
Realnum dd = aa - bb;
aa.show();
bb.show();
cc.show();
dd.show();
cin.get();
return 0;
}