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=0, double imaginery=0):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(3, 5);
    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 0;
}

程序结果:

对类基本框架及一些基本函数很不熟悉。 以下进行知识整理。

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;
};

 

 

 

       

 

转载于:https://www.cnblogs.com/lovecpp/p/10629186.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值