#include"iostream"using namespace std;//名称空间class Rectangle //计算矩形的面积{public :int w,l;//成员变量,和为对象占用的内存空间void Init(int w_,int l_); //成员函数:函数与C与几乎一致int Sget(); //可以通过行为改变属性的值};void Rectangle::Init(int w_,int l_) //归属::行为{w=w_;l=l_;}int Rectangle::Sget(){return w*l;}int main(){ int w,l;Rectangle r;//r是一个对象,通过类定义的变量为对象cin >>w >>l;r.Init(w,l);cout <<"面积为:"<< r.Sget()<< endl;return 0;}
//构造函数存在的意义与必要性:避免声明#include"iostream"using namespace std;//名称空间class Rectangle //计算矩形的面积{public :int w,l;//成员变量,和为对象占用的内存空间void Init(int w_,int l_); //成员函数:函数与C与几乎一致int Sget(); //可以通过行为改变属性的值};void Rectangle::Init(int w_,int l_) //归属::行为{w=w_;l=l_;}int Rectangle::Sget(){return w*l;}int main(){ int w,l;Rectangle r;//r是一个对象,通过类定义的变量为对象Rectangle r1;cin >>w >>l;r.Init(w,l);r1.w=3;r1.l=4;cout <<"面积为:"<< r.Sget()<< endl;cout <<"面积为:"<< r1.Sget()<< endl;return 0;}
/**构造函数存在的意义与必要性,构造函数是一种特殊的成员函数,构造指初始化对象(可重载),析构函数是编译器自动调用*可以认为是对内存空间的高效管理,在分配内存,回收内存上的很严谨,大大降低了bug概率*名字与类名相同,却没有返回值*无法像一般函数一样显式的调用,创建对象时自动执行*/#include"iostream"using namespace std;//名称空间class Rectangle //计算矩形的面积{private:int w,l;public :Rectangle(int w_,int l_);//析构函数有~ ,析构函数不能进行重载void Init(int w_,int l_); //成员函数:函数与C与几乎一致int Sget(); //可以通过行为改变属性的值};Rectangle::Rectangle(int w_,int l_)//构造函数{w=w_;l=l_;}void Rectangle::Init(int w_,int l_) //归属::行为{w=w_;l=l_;}int Rectangle::Sget(){return w*l;}int main(){Rectangle * ptr;ptr=new Rectangle(3,4);//通过堆来申请内存chuck//Rectangle r(3,4);//通过栈来传参cout <<"面积为:"<<ptr->Sget()<< endl;return 0;}
```cpp
//构造函数的简单分类:空参数,有参数,拷贝构造
include”iostream”
using namespace std;//名称空间 class Rectangle //计算矩形的面积 { public : int w,l;//成员变量,和为对象占用的内存空间 Rectangle(){}; //空参数,比如打印一句话,拷贝构造会是系统默认构造消失,故加上空构造 //Rectangle(int w,int l) 初始化一个对象更为简单 Rectangle(Rectangle p);//拷贝构造 void Init(int w,int l); //成员函数:函数与C与几乎一致 int Sget(); //可以通过行为改变属性的值 }; Rectangle::Rectangle(Rectangle p) { w=p->w; l=p->l; } void Rectangle::Init(int w,int l) //归属::行为 { w=w; l=l; } int Rectangle::Sget() { return w*l; } int main() { int w,l; Rectangle r;//r是一个对象,通过类定义的变量为对象 Rectangle r1; cin >>w >>l; r.Init(w,l); r1.w=3; r1.l=4; Rectangle r2(&r1); cout <<”面积为:”<< r.Sget()<< endl; cout <<”面积为:”<< r1.Sget()<< endl; cout <<”面积为” << r2.Sget()<<endl; return 0; }
```cpp//构造函数的简单分类:空参数,有参数,拷贝构造#include"iostream"using namespace std;//名称空间class Rectangle //计算矩形的面积{public :int w,l;//成员变量,和为对象占用的内存空间Rectangle(){}; //空参数,比如打印一句话//Rectangle(int w_,int l_) 初始化一个对象更为简单Rectangle(Rectangle *p);//拷贝构造void Init(int w_,int l_); //成员函数:函数与C与几乎一致int Sget(); //可以通过行为改变属性的值};Rectangle::Rectangle(Rectangle *p){this->w=p->w;//this指向当前函数的对象this->l=p->l;}void Rectangle::Init(int w_,int l_) //归属::行为{this->w=w_;this->l=l_;}int Rectangle::Sget(){return this->w*this->l;}int main(){ int w,l;Rectangle r;//r是一个对象,通过类定义的变量为对象Rectangle r1;cin >>w >>l;r.Init(w,l);//this指向rr1.w=3; //this指向r1r1.l=4;//Rectangle r2(&r1);cout <<"面积为:"<< r.Sget()<< endl;cout <<"面积为:"<< r1.Sget()<< endl;// cout <<"面积为" << r2.Sget()<<endl;return 0;}
enum Rectangle_Kind{com_R=0;spe_R=1;};typedef struct R{enum R_K;R_K=com_R;};
/*!构造函数的简单分类:空参数,有参数,拷贝构造*/#include"iostream"using namespace std;//!<名称空间/*** 这是一个计算矩形面积的类*/typedef struct R_K{int w,l; /*!two integer value in this struct*/}class Rectangle{public :int w,l; /*!< two integer value */Rectangle(){}; //!< a member function which is Null,but Rectangle(int w_,int l_) 初始化一个对象更为简单Rectangle(Rectangle *p);//!<析构函数void Init(int w_,int l_); //!<成员函数,初始化长度int Sget(); //!<可以通过行为改变属性的值};Rectangle::Rectangle(Rectangle *p){this->w=p->w;this->l=p->l;}void Rectangle::Init(int w_,int l_){this->w=w_;this->l=l_;}int Rectangle::Sget(){return this->w*this->l;}int main(){ int w,l;Rectangle r;/*!< this is an object */Rectangle r1;cin >>w >>l; /*!< input two integer value */r.Init(w,l);/*!< this is an ptr point to obj r*/r1.w=3;r1.l=4;cout <<"r的面积为:"<< r.Sget()<< endl;cout <<"r1的面积为:"<< r1.Sget()<< endl;return 0;}
