C++第七周【任务3】扩展版:设计Complex,使实部和虚部的类型为定义对象时用的实际类型。
来源:互联网 发布:http协议java 编辑:程序博客网 时间:2024/06/06 22:32
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: C++第七周任务3 * 作 者: 李洪悬 * 完成日期: 2012 年 4 月 3 日* 版 本 号: * 对任务及求解方法的描述部分* 输入描述: 输入点的坐标* 问题描述:设计Complex,使实部和虚部的类型为定义对象时用的实际类型。 * 程序输出: 求点的坐标的和* 程序头部的注释结束*/【任务3】阅读P314的例10.1(电子版的在平台上见txt文件)。该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定是double型的。可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型。(1)要求类成员函数在类外定义。(2)在此基础上,再实现减法、乘法和除法你可以使用的main()函数如下。int main( ){Complex<int> c1(3,4),c2(5,-10),c3; c3=c1.complex_add(c2); cout<<"c1+c2="; c3.display( ); Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; c6=c4.complex_add(c5); cout<<"c4+c5="; c6.display( ); system("pause");return 0;}//源代码如下
#include <iostream> using namespace std; template <class numtype> class Complex { public: Complex( ) { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } Complex complex_add(Complex &c2); Complex complex_sub(Complex &c2); Complex complex_mul(Complex &c2); Complex complex_div(Complex &c2); void display( ); private: numtype real; numtype imag; }; template <class numtype> Complex<numtype> Complex<numtype>::complex_add(Complex &c2) { Complex<numtype> c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_sub(Complex &c2) { Complex<numtype> c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_mul(Complex &c2) { Complex<numtype> c; c.real=real*c2.real; c.imag=imag*c2.imag; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_div(Complex &c2) { Complex<numtype> c; c.real=real/c2.real; c.imag=imag/c2.imag; return c; } template <class numtype> void Complex<numtype>::display( ) { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main( ) { Complex<int> c1(3,4),c2(5,-10),c3; c3=c1.complex_add(c2); cout<<"c1+c2="; c3.display( ); Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; c6=c4.complex_add(c5); cout<<"c4+c5="; c6.display( );Complex<double> c66(3.1,4.4),c7(5.34,-10.21),c8; c8=c66.complex_sub(c7); cout<<"c66-c7="; c8.display( );Complex<int> c9(3,4),c10(5,-10),c11; c11=c9.complex_mul(c10); cout<<"c9*c10="; c11.display( );Complex<double> c12(3.1,4.4),c13(5.34,-10.21),c14; c14=c12.complex_div(c13); cout<<"c12/c13="; c14.display( );system("pause"); return 0; }
经验积累:照猫画虎!但也要细心!因为我马虎画错了,例如我把对象名写重啦!又改为C66!偷懒呗!
- C++第七周【任务3】扩展版:设计Complex,使实部和虚部的类型为定义对象时用的实际类型。
- 《第七周任务二》设计complex,使实部和虚部的类型为定义对象时用的实际类型
- C++第七周【任务3】设计Complex,使实部和虚部的类型为定义对象时用的实际类型。
- 第七周任务三(通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型。)
- 第七周C++ 任务三。模板类设计Complex,使实部和虚部为定义对象时用的实际类型
- 《第七周实验报告3-1》---通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型
- 第七周上机任务三--实现一个复数类--通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型
- 【VBA研究】变量定义的类型和实际赋值类型
- 第九周任务一:Complex类的扩展
- 第九周任务一:定义Complex类中的<<和>>运算符的重载
- Objective-C 定义的类型
- 《第七周任务三》设计Complex,要求类成员函数在类外定义,实现减法,乘法,除法
- 实际举例C#引用类型和值类型的区别
- 实际举例C#引用类型和值类型的区别
- 实际举例C#引用类型和值类型的区别
- C语言(变量的定义和类型的本质)
- ||Python||complex复数类型的简单介绍
- static的方法和变量,只与当前类型有关,和当前对象实际new无关
- 计算机开机引导过程
- C++编程命名规范
- C语言中printf格式化输出函数
- 怎么制作1寸照片
- 汇编语言基本概念
- C++第七周【任务3】扩展版:设计Complex,使实部和虚部的类型为定义对象时用的实际类型。
- DAMAGE:after Normal Block(#63) at 0x00382ca8
- 23.内部局部类的使用
- Android开发环境及工具常见的错误集锦
- C语言温故之一
- EOS应用中出现的个别生僻字乱码问题的解决方案
- 微软官方windows命令行大全。
- 网络服务器常见问题及处理
- ImageSwitcher 图片切换器 和 TextSwitcher 文本切换器