代码:

#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. redis实现session共享,哨兵

    一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...

  2. Unity3D之Mesh(一)绘制三角形

    前言: Unity自带几种简单的模型,如cube等:一般情况下,其余模型有3D建模软件生成,以合适的文件格式导入unity中:而mesh(以我目前很粗浅的了解)的一般用途就是:对现有的模型进行变形,以 ...

  3. 关于phonegap的cookie

    angular搞了一半现在开始搞phonegap(确切的说应该叫cordova). 因为有很紧迫的需求,所以我也不能系统的学,只能遇到啥问题就解决啥.第一个问题就是cookie. 经过调研,cordo ...

  4. 【Educational Codeforces Round 37】F. SUM and REPLACE 线段树+线性筛

    题意 给定序列$a_n$,每次将$[L,R]$区间内的数$a_i$替换为$d(a_i)$,或者询问区间和 这题和区间开方有相同的操作 对于$a_i \in (1,10^6)$,$10$次$d(a_i) ...

  5. tornado 获取参数

    self.get_argument('name') 没有传递name就报400错误了 tornado.web.MissingArgumentError: HTTP 400: Bad Request ( ...

  6. POJ2559:Largest Rectangle in a Histogram

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://poj.org/problem?id=2559 贪心的想,最大的子矩阵顶部 ...

  7. yum配置文件位置

    centos的yum配置文件 cat /etc/yum.conf cachedir=/var/cache/yum //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/ ...

  8. Poj1218_THE DRUNK JAILER(水题)

    一.Description A certain prison contains a long hall of n cells, each right next to each other. Each ...

  9. hdoj1113(字符串map应用)

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  10. oracle--视图(2)---

    Oracle---视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同 ...