实验三
Posted szb3115
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验三相关的知识,希望对你有一定的参考价值。
在我的理解中类是实现一个目标的整体,在这个整体里有实现这个目标完整的函数,这样在实现目标时就只要调用类里面的函数就可以了。类需要定义和实现,也可以在定义的时候直接实现。
对象就是类的实现目标,可以用类的名字去定义一个对象,然后通过调用类里面的函数就可以实现对象要达成的目标。
构构造函数就相当于对某个函数进行赋初值,如果没有写构造函数,那么编译器会自动生成一个隐含的默认构造函数。
复制构造函数可以让函数被调用的时候把赋值这个操作再次实现。
析构函数是相当于清理函数(对象被删除前,需要做一个清理工作),例如:在函数运行结束时,会有内存残余,而这些残余内存要释放出来,析构函数可以释放它们。
下面是程序实例
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;
}
以上是关于实验三的主要内容,如果未能解决你的问题,请参考以下文章