析构函数构造的两种方法:
range::range (float a ,float b,float c){width=a,length=b,hight=c;
cout<<"构数成功造函"<<endl;}
这种方法写出时,函数内部的顺序没有关系。
2、
range::range(float a,float b,float c)
{width=a,length=b,hight=c,cout<<"构造析构函数成功"<<endl;}
eg:
class A
{ public : // 构造和析构必须public
A( ) { cout<<"构造 A()"<< endl; }
~A( ) { cout<<"析构~A()"<< endl; }
};
class B
{ public :
B( ) { cout<<"构造 B()"<<endl; }
~B( ) { cout<<"析构~B()"<<endl; }
};
构造函数遵从:先构造,后析构
后构造,先析构
***
构造对象数组:
- 每个元素都是一个对象
-
数组有多少个对象就调用多少次构造函数
代码块:
class range
{
float width;
float length;
float hight;
float area;
int x;
public:
range::range(float a,float b,float c)
{width=a,length=b,hight=c,cout<<"构造析构函数成功"<<endl;}
void get_x(int a){this->x=a;}
float range::getarea(void)
{return width*length*hight;}
}
int main()
{
range data[3]={range(2,3,4),range(5,6,7),range(22,2,2)};
for(int i=0;i<3;i++)
cout<<"数组"<<i+1<<"的面积:"<<data[i].getarea()<<endl;
//point point1,point2;
system("pause");
return 0;
}
运行的结果:
构造析构函数成功
构造析构函数成功
构造析构函数成功
数组1的面积:24
数组2的面积:210
数组3的面积:88
请按任意键继续. . .
***
对象指针与数组:
class point
{
int x,y;
static int count;
public:
void set_data(int a,int b){x=a,y=b;}
void display(void)
{
cout<<"x="<<x<<" "<<"y="<<y<<endl;
}
};
int main()
{
point a[5];
point *p[5];
for(int i=0;i<5;i++)
{
p[i]=&a[i];
p[i]->set_data(i,i+2);
//a[i].set_data(i,i+2);
p[i]->display();
(*p)++;
}
system("pause");
return 0;
}