实验三
4-11
#include<iostream> using namespace std; class area { public: area(int len,int wid);//构造函数 area(area &s);//复制构造函数 int geta(){return a;} int getb(){return b;} ~area(); private: int a,b; }; //成员函数定义 area::area(int len,int wid) { a=len; b=wid; cout<<"面积为"<<a*b<<endl; } area::area(area &s) { a=s.a; b=s.b; } area::~area() { cout <<"释放内存"<< endl; } int main() { area(2,3); return 0; }#include<iostream> using namespace std; class area { public: area(int len,int wid);//构造函数 area(area &s);//复制构造函数 int geta(){return a;} int getb(){return b;} ~area(); private: int a,b; }; //成员函数定义 area::area(int len,int wid) { a=len; b=wid; cout<<"面积为"<<a*b<<endl; } area::area(area &s) { a=s.a; b=s.b; } area::~area() { cout <<"释放内存"<< endl; } int main() { area(2,3); return 0; }
运行结果:(此处长宽为3,2)

4-20
#include<iostream> using namespace std; class complex { public: //构造函数 complex(){real=0;imag=0;} complex(double r,double i){real=r;imag=i;} complex operator+(const complex &c1); double getreal(){return real;} double getimag(){return imag;} ~complex(); void show(); private: double real; double imag; }; complex complex::operator+(const complex &c1) { complex c; c.real = real + c1.real; c.imag = imag + c1.imag; return c; } complex::~complex() { cout<<"释放内存"<<endl; } void complex::show() { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main() { complex c1(3,5),c2(4.5,0),c3; c3=c1+c2; c3.show() ; return 0; }

(不懂为什么冒出来4个释放内存,析构函数不是在函数最后运行一次吗)
还是得多看看代码,自己勤加练习。
个人觉得,类和对象在使用上和定义一个函数很像,编码思路可以相互靠近。

浙公网安备 33010602011771号