实验三

在我的理解中类是实现一个目标的整体,在这个整体里有实现这个目标完整的函数,这样在实现目标时就只要调用类里面的函数就可以了。类需要定义和实现,也可以在定义的时候直接实现。

对象就是类的实现目标,可以用类的名字去定义一个对象,然后通过调用类里面的函数就可以实现对象要达成的目标。

构构造函数就相当于对某个函数进行赋初值,如果没有写构造函数,那么编译器会自动生成一个隐含的默认构造函数。

复制构造函数可以让函数被调用的时候把赋值这个操作再次实现。

析构函数是相当于清理函数(对象被删除前,需要做一个清理工作),例如:在函数运行结束时,会有内存残余,而这些残余内存要释放出来,析构函数可以释放它们。

下面是程序实例

4—11

#include<iostream>
using namespace std;
class square{
public:
square(float a,float b);
float area();
square(square &s);
~square(){}
private:
float length,width;
};
square::square(float a,float b){
length=a;
width=b;
}
square::square(square &s){
length=s.length;
width=s.width;
cout<<"Calling the copy constructor"<<endl;
}
float square::area(){
return length*width;
}
int main(){
float length,width;
cout<<"输入长和宽:";
cin>>length>>width;
square Area(length,width);
cout<<"矩形的面积是:"<<Area.area();
return 0;
}

 

 

 

4—20

#include<iostream>
using namespace std;
class Complex{
public:
Complex(double a,double b);
Complex(double a);
Complex(Complex &s);
void add(Complex &c);
void show();
~Complex(){}
private:
double real,imaginary;
};
Complex::Complex(double a,double b){
real=a;
imaginary=b;
}
Complex::Complex(double a){
real=a;
imaginary=0;
}
void Complex::add(Complex &c){
real=real+c.real;
imaginary=imaginary+c.imaginary;
}
void Complex::show(){
cout<<real<<"+"<<imaginary<<"i"; 
}
Complex::Complex(Complex &s){
real=s.real;
imaginary=s.imaginary;
cout<<"Calling the copy constructor"<<endl;
}
int main(){
Complex c1(3,5);
Complex c2(4.5);
c1.add(c2);
c1.show();
return 0;
}

 

posted @ 2018-04-08 20:24  944105198  阅读(83)  评论(7编辑  收藏  举报