类与指针

Posted lixianhu1998

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类与指针相关的知识,希望对你有一定的参考价值。

析构函数构造的两种方法:

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;
}

以上是关于类与指针的主要内容,如果未能解决你的问题,请参考以下文章

PHP 类与对象 全解析方法

简单包装类与智能指针

片段中的 EditText 上的空指针异常 [重复]

基类与派生类的指针和成员函数调用原理

类与指针

基类与派生类转换-指针赋值