#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指向r
r1.w=3; //this指向r1
r1.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;
}