Complex复数类——课堂作业
代码:
#include<iostream>
#include<cmath>
using namespace std;
class Complex
{
public:
Complex(double ideal,double imagingery);//构造函数
void add(Complex c2);//加法函数
double mod();//取模函数
void show();
Complex(Complex &c2);//复制构造函数
private :
double d;
double m;
};
Complex::Complex(Complex &c2):
{
d = c2.d;
m = c2.m;
}
Complex::Complex(double ideal=, double imaginery=):d(ideal),m(imaginery)//不同的初始化方式
{
}
void Complex ::add(Complex c2)
{
d = d + c2.d;
m = m + c2.m;
}
double Complex::mod()
{
double s;
s = sqrt(d*d + m * m);
return s;
}
void Complex::show()
{
cout << d << "+" << m << "i" << endl;
}
int main()
{
Complex c1(, );
cout << "c1=";
c1.show();
Complex c2 = 4.5;
cout << "c2=";
c2.show();
Complex c3(c1);
cout << "c3=";
c3.show();
c1.add(c2);
cout << "c1加c2:";
c1.show();
cout << "c1的模:";
cout << c1.mod();
return ;
}
程序结果:

对类基本框架及一些基本函数很不熟悉。 以下进行知识整理。
class A//A为类名
{
public://外部接口
A(int i,int j);//构造函数
A(A &a);//复制构造函数
void A1(A a);
int A2(int a=0,int b=0);//类的成员函数可以有默认形参值,但必须写在类定义中
void A3();//其他成员函数
private :
int d;
int m;//成员数据。在类内部,只能定义,不能初始化。
};
//构造函数
A::A(int i, int j):d(0), m(0) {
} //复制构造函数
A::A(A &a) : d(a.d), m(a.m) {
} //其他成员函数
void A::A1(A a){}
构造函数:
作用:用于在创建对象时为对象分配内存,并且可以将其初始化到特定状态。
性质:1、特殊的成员函数。2、函数名与类名相同,没有返回值。3、构造函数在对象被创建的时候会自动被调用(不带参数,不初始化,只负责分配内存)。4、可以是内联函数,重载函数或带有默认形参值的函数。
自定义的构造函数若带有形参,建立对象时必须给出初始值。
复制构造函数: (构造函数的一种,包含构造函数的性质)
形参是本类的对象的引用。有且只有一个形参。功能:把初始化对象的每个数据成员的值都复制到新建立的对象中。
以下情况下被调用:1、Complex c3(c1);(用类的一个对象去初始化本类的另个对象)2、函数的形参是类的对象,实参传给形参时。3、函数的返回值是类的对象。
函数实现:
返回值类型 类名::函数名(参数){}
对于没有返回值函数名是类名的构造函数的实现:类名::类名(参数){}
对象的引用:
对象.成员名
const
A::A(const A &t){}只允许使用,不允许修改。
本次实验作业也可以这么写:
class Complex
{
public:
Complex(double ideal,double imagingery);
void add(const Complex &c2);//不单独写复制构造函数
double mod();
void show();
private :
double d;
double m;
};
Complex复数类——课堂作业的更多相关文章
- 侯捷老师C++大系之C++面向对象开发:(一)不带指针的类:Complex复数类的实现过程
一.笔记1.C++编程简介 2.头文件与类的声明 防卫式声明#ifndef __COMPLEX__#define __COMPLEX__ …… #endif头文件的布局模板简介template< ...
- YTU 2443: C++习题 复数类--重载运算符3+
2443: C++习题 复数类--重载运算符3+ 时间限制: 1 Sec 内存限制: 128 MB 提交: 1368 解决: 733 题目描述 请编写程序,处理一个复数与一个double数相加的运 ...
- 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl
因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Compl ...
- 课堂作业-Bag类的实现
课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...
- 类与对象 CG作业1. 复数类Comple 。
问题描述]一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性realPart和imagPart分别表示复数的实部和虚部,三个成员函数:initComplex实现复数成员变量的初 ...
- Java课程课堂作业代码
前言 本文章只是单纯记录课堂老师布置的课堂作业代码,题目都比较简单,所以没有写解题思路,相信大家都能理解,当然其中有的解法和代码不是最优的,当时只是为了完成题目,后来也懒得改了,如果有不恰当或者不正确 ...
- [GeekBand] C++学习笔记(1)——以复数类为例
本篇笔记以复数类(不含指针的类)为例进行面向对象的学习 ========================================================= 复数类的声明: class ...
- 复数类(C++练习一)
写一个复数类,实现基本的运算,目的熟悉封装与数据抽象. 类的定义 #include <iostream> #include <vector> using namespace s ...
- C++习题 复数类--重载运算符2+
Description 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意.例如,c1+ ...
随机推荐
- BZOJ 3296 [USACO2011 Open] Learning Languages:并查集
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3296 题意: 农夫约翰的N(2 <= N <= 10,000)头奶牛,编号为1 ...
- 常见ETL工具一览,你知多少?
这些年,几乎都与ETL打交道,接触过多种ETL工具.现将这些工具做个整理,与大家分享. 一 ETL工具[国外] 1. datastage点评:最专业的ETL工具,价格不菲,使用难度一般 下载地址:ft ...
- 分享知识-快乐自己:Maven 相关原理
依赖原则:解决模块工程之间的Jar冲突问题 1):情定设定:验证路径最短者优先原则 创建三个工程如下: Hello:并且以来 log4j.1.2.17.jar HelloFriend:依赖了工程 He ...
- Android之单元测试学习
1.单元测试概念 单元测试(又称为模块测试),检验程序模块(软件设计的最小单位)正确性的测试工作,常常是程序员写的一段代码.对于面向对象编程,最小单元就是方法,包括基类(超类).抽象类.或者派生类(子 ...
- URAL1517Freedom of Choice(后缀数组)
Background Before Albanian people could bear with the freedom of speech (this story is fully describ ...
- ACM学习历程—BZOJ 2115 Xor(dfs && 独立回路 && xor高斯消元)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2115 题目大意是求一条从1到n的路径,使得路径xor和最大. 可以发现想枚举1到n的所有路 ...
- codevs 3372 选学霸
3372 选学霸 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果 ...
- codevs1020 孪生蜘蛛
1020 孪生蜘蛛 题目描述 Description 在G城保卫战中,超级孪生蜘蛛Phantom001和Phantom002作为第三层防卫被派往守护内城南端一带极为隐秘的通道. 根据防护中心的消息 ...
- canvas实现平铺
代码: /** * Created by Administrator on 2016/1/30. */ function draw(id){ var canvas = document.getElem ...
- Cypress USB3014 C++DLL 导入问题
VS2017编译cpp工程出现问题 硬件型号:芯片版本 Cypress FX3 USB3014(和芯片无关)) 重现步骤: 1.解压 FX3_SDK_Windows_v1.3.3.exe 2.VS20 ...