代码:

#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复数类——课堂作业的更多相关文章

  1. 侯捷老师C++大系之C++面向对象开发:(一)不带指针的类:Complex复数类的实现过程

    一.笔记1.C++编程简介 2.头文件与类的声明 防卫式声明#ifndef __COMPLEX__#define __COMPLEX__ …… #endif头文件的布局模板简介template< ...

  2. YTU 2443: C++习题 复数类--重载运算符3+

    2443: C++习题 复数类--重载运算符3+ 时间限制: 1 Sec  内存限制: 128 MB 提交: 1368  解决: 733 题目描述 请编写程序,处理一个复数与一个double数相加的运 ...

  3. 定义一个复数(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 ...

  4. 课堂作业-Bag类的实现

    课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...

  5. 类与对象 CG作业1. 复数类Comple 。

    问题描述]一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性realPart和imagPart分别表示复数的实部和虚部,三个成员函数:initComplex实现复数成员变量的初 ...

  6. Java课程课堂作业代码

    前言 本文章只是单纯记录课堂老师布置的课堂作业代码,题目都比较简单,所以没有写解题思路,相信大家都能理解,当然其中有的解法和代码不是最优的,当时只是为了完成题目,后来也懒得改了,如果有不恰当或者不正确 ...

  7. [GeekBand] C++学习笔记(1)——以复数类为例

    本篇笔记以复数类(不含指针的类)为例进行面向对象的学习 ========================================================= 复数类的声明: class ...

  8. 复数类(C++练习一)

    写一个复数类,实现基本的运算,目的熟悉封装与数据抽象. 类的定义 #include <iostream> #include <vector> using namespace s ...

  9. C++习题 复数类--重载运算符2+

    Description 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意.例如,c1+ ...

随机推荐

  1. Java微信开发_00_资源汇总贴

    1.微信公众平台技术文档(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432) 2.微信企业号开发接口文档(ht ...

  2. NserviceBus过期处理

    NserviceBus不过期,修改注册表 HKEY_CURRENT_USER\Software\NServiceBus\3.3下的项TrailDate到2099-08-02

  3. Web视频播放 之 【HTML5 Video标签】

    一.说明 HTML5中引入了video标签用于方便的在浏览器中播放视频,不在需要对flashPlayer进行依赖,更加轻量级.但在浏览器兼容.视频协议支持方面还有一些需要注意的问题. 二.浏览器兼容 ...

  4. bzoj 1441: Min 裴蜀定理

    题目: 给出\(n\)个数\((A_1, ... ,A_n)\)现求一组整数序列\((X_1, ... X_n)\)使得\(S=A_1*X_1+ ...+ A_n*X_n > 0\),且\(S\ ...

  5. NOIp2018集训test-10-16 (bike day2)

    “毕姥爷:今天的题好简单啊,你们怎么考得这么烂啊,如果是noip你们就凉透了啊“ 今天的题难度应该是3.2.1递减的,但是我不知道哪根筋没搭对,平时我最多1h多就弃题了,今天硬生生写了2h20min的 ...

  6. 如何在virtualenv环境中安装指定的python版本

    指定python版本:virtualenv   -p python执行文件路径     自定义虚拟环境名称.如果文件路径有空格,用引号. 如果不指定python版本,则默认使用环境变量中的python ...

  7. 洛谷【P1898】缘分计算

    我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P189 ...

  8. form+iframe实现ajax文件上传

    在做文件上传时除了传入文件外,还有附件参数,并且要求不刷新页面,之前是表单提交的方式,现在修改成ajax上传的方式,由于没有选择用插件,所以用form+iframe的方式,并且这种方式对IE8以上及主 ...

  9. TModJS:template

    ylbtech-TModJS: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech. ...

  10. [原创] 新人分享--ORA-01012:not logged on的解决办法 [复制链接]

    转自:http://f.dataguru.cn/thread-82530-1-1.html