c++第三次实验报告

#include<iostream>
using namespace std;
//类的定义
class Rectangle {
public:
void setLength();//用来输入矩形的长
void setWidth();//用来设置矩形的宽
double getArea();//用来输出面积
Rectangle();
Rectangle(double m_length, double m_width);
~Rectangle();
private:
double m_ilength, m_iwidth, m_iArea;
};
//函数类外定义
void Rectangle::setLength() {
double _length;
cin >> _length;
m_ilength = _length;
}
void Rectangle::setWidth() {
double _width;
cin >> _width;
m_iwidth = _width;
}
double Rectangle::getArea() {
return m_ilength * m_iwidth;
}
Rectangle::Rectangle() {
m_ilength = 0;
m_iwidth = 0;
}
Rectangle::Rectangle(double m_length, double m_width) {
m_ilength = m_length;
m_iwidth = m_width;
}
Rectangle::~Rectangle()
{
}
//主函数部分
int main() {
Rectangle *p0 = new Rectangle(100, 100);//从堆中申请内存
cout << "请输入矩形的长" << endl;
p0->setLength();
cout << "请输入矩形的宽" << endl;
p0->setWidth();
cout <<"矩形的面积为:"<< p0->getArea() << endl;
delete p0;
p0=NULL;
return 0;
}

#include<iostream>
using namespace std;
//Complex类的定义
class Complex {
public:
    Complex(double r0, double i0);
    Complex(double r0);
    Complex(Complex&c0);
    ~Complex();//析构函数
    void show();
    void add(Complex &c0);//此处因为使用引用传递,不会调用复制构造函数。
private:
    double real, imaginary;
};
//函数的类外定义
Complex::Complex(double r0, double i0) {
    real = r0;
    imaginary = i0;
}
Complex::Complex(double r0) {
    real = r0;
}
Complex::Complex(Complex&c0) {
real=c0.real;
imaginary=c0.imaginary; } Complex::
~Complex(){ } void Complex::show() { cout << real << "+" << imaginary << "i" << endl; } void Complex::add(Complex&c0) { real += c0.real; } //主函数部分 int main() { Complex c1(3, 5);//实例化 Complex c2(4.5); c1.add(c2); c1.show(); return 0; }

1.对象是现实生活中具体的事物,类则是对象在虚拟计算机中的一种抽象表现,通过提取对象的特征和信息,将现实事物在计算机中进行还原。类是现实中某种具有相同性质的对象的统称和提炼。像是把对象打造成一种模具。

2.构造函数是一种初始化函数。因为初始化操作需要用的的次数太多,应用的太广,所以将他设置为一种系统函数,减少出错率,也减少了工作量。

3.复制构造函数是在需要初始化多个类时的一种简便操作,用以减少计算机工作量。

4.计算机的空间是有限的,我们每一次实例化类时,都需要向系统申请内存或者系统自动分配内存,而在使用完之后这些内存可能并不会被自动释放,就大大增加了内存的损耗,析构函数就是让系统自动收回内存,可以节约内存。

原文地址:https://www.cnblogs.com/miaorui1314/p/8735231.html