代码:

#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. spring boot: 一般注入说明(四) Profile配置,Environment环境配置 @Profile注解

    1.通过设定Environment的ActiveProfile来设置当前context所需要的环境配置,在开发中使用@Profile注解类或方法,达到不同情况下选择实例化不同的Bean. 2.使用jv ...

  2. node.js抓取网上图片保存到本地

    用到两个模块,http和fs var http = require("http");var fs = require("fs"); var server = h ...

  3. Android基于socket的群聊程序

    在网上看了好多,但是感觉不是太简单就是只能单独聊,所以就自己写了个可以群聊的,直接上代码了 一.服务器端 这里用的MyEclipse作为服务器端 MyServerScoket.java package ...

  4. bzoj 2733 永无乡 线段树

    题目: 支持两种操作: 合并两点所在的联通块 查询某点所在联通块内权值第k小. 题解 平衡树启发式合并随便搞一搞就好了. 我写了一个线段树合并 #include <cstdio> #inc ...

  5. 在Debug中使用断点调试程序

    我最近在学习汇编的程序,所以很多都需要动手写点代码去测试,如果是测试三五行代码的还比较简单,可以在debug中直接按T进行单步调试,但是到后来调试的代码越来越复杂,越来越长,如果再使用单步调试不知道要 ...

  6. 作为.NET程序员,您需要IronPython么?

    .NET作为一个成熟的开发平台,为很多语言的发展提供了肥沃的土壤:历史相对久远的有Managed C++.C#.VB.NET.J#,正值壮年的则有IronPython.IronRuby,而老赵极力推崇 ...

  7. android开发中 解决服务器端解析MySql数据时中文显示乱码的情况

    首先,还是确认自己MySql账户和密码 1.示例  账户:root   密码:123456   有三个字段   分别是_id  .username(插入有中文数据).password 1)首先我们知道 ...

  8. 开发框架:AdminLTE

    ylbtech-开发框架:AdminLTE 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部 1. 2. 5.返回顶部 1. https://adminlte.io 2.   6.返 ...

  9. Rails多个复选框--check_box_tag

    一.简单粗暴的解决方法 view <% @roles.each do |role| %> <%= check_box_tag 'roles[]', role.id%> < ...

  10. 通过 命令提示符(cmd.exe)连接 Oracle 数据库

    通过IP 连接数据库: sqlplus userName/userPassword@//IP:port/SID 例:sqlplus testuser/123456@//192.168.0.1:1521 ...