1.构造函数:
(1)构造函数的任务:初始化类对象的数据成员
(2)构造函数的用法:1.构造函数名与类名相同;2.构造函数可以被重载;3.构造函数不可以被声明为const类型;4.构造函数不需要用户调用,系统自己会调用;
(3)构造函数的常规构造方法:
#include<iostream>
using namespace std;
class box
{
public:
box()
{
/*来初始化相关数据*/
}
private:
/*相关变量*/
};
int main()
{
/*相关的代码此处省略
*/
return 0;
}
2.析构函数:
(1)析构函数的用处:释放、回收、撤销相关对象
(2)析构函数的注意点:1.主要用于对象生命期结束时回收对象;2.与类同名(但是在前面加上“~”符号);3.析构函数没有返回值 ;4.析构函数在文件内只有一个且不含参数;
(3)析构函数的常规用法:
#include<iostream>
using namespace std;
class person
{
public:
person()/*无函数参数的构造函数*/
{
/*相关代码此处省略*/
}
person(float h, float w)/*有函数参数的构造函数*/
{
/*相关代码省略*/
}
~person() /*来消除和释放构造函数产生的类对象*/
{
/*相关代码此处省略!*/
}
};
int main()
{
/*此处省略相关代码*/
return 0;
/*见下文代码*/
}
3.用析构、构造函数来生成相关对象(用指针来进行遍历):
#include<iostream>
using namespace std;
class BOX
{
public:
BOX()
{
length = 1;
width = 1;
height = 1;
cout <<"这个盒子的长,宽,高 分别为:"<< length << width << height <<endl;
cout <<"这个盒子已经被创建!" <<endl;
}
BOX(float L , float W, float H)
{
length = L;
width = W;
height = H;
cout <<"这个盒子的长,宽, 高 分别为" << length << width << height <<endl;
cout <<"这个盒子已经用第二种方法创建了!"<<endl;
}
float volume()
{
return length * width * height;
}
~BOX()
{
cout << "这个盒子的长,宽 ,高为:" << length << width << height <<endl;
cout << "这个函数已经被调用析构函数消除了! " <<endl;
}
private:
float length ,width, height;
};
int main()
{
BOX boxs[] = { BOX(1,3,5), BOX(2,4,6),BOX(6,2,3) };
BOX *pbegin = begin(boxs);
BOX *pend = end(boxs);
while(pbegin != pend)
{
cout << "这个盒子的体积为:"<<pbegin -> volume() <<endl;
++pbegin;
}
return 0;
}
(1)解释:pbegin 指向boxs数组的首元素,pend 指向boxs数组尾元素的下一个位置,以此来遍历对象,并计算相关体积;