【6】学习C++之类的实例化及访问

类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大。

实例化类有两种,一个是从栈中实例化对象:

class TV
{
public:
    char name[20];
    int type;

    void changeVol();
    void power();
}

int main(void)
{
    TV tv;    //实例化一个对象
    TV tv[20];//实例化一组对象

    return 0;
}

另一个是从堆中实例化对象:

class TV
{
public:
    char name[20];
    int type;

    void changeVol();
    void power();
}

int main(void)
{
    TV *p = new TV();    //实例化一个对象
    TV *q = new TV[20];  //实例化一组对象
    delete p;
    delete []q;

    return 0;
}

这两种实例化后的对象的访问方式也是有所不同的,如果是从栈中实例化的对象的成员,访问用点(.)即可:

int main(void)
{
    TV tv;
    tv.type = 0;
    tv.changeVol();
    return 0;
}

如果是从堆中实例化的对象的成员,访问用箭头(->)即可:

int main(void)
{
    TV *p = new TV();
    p ->type = 0;
    p ->changeVol();
    delete p;
    p = NULL;
    return 0;
}

如果是从堆中实例化的一组对象的成员,则是额外需要for循环:

int main(void)
{
    TV *p = new TV[5];
    for(int i = 0;i<5;i++)
    {
        p ->type = 0;
        p ->changeVol();
    }
    delete []p;
    p = NULL;
    return 0;
}

 

posted @ 2019-04-13 12:50  机智少女不怀孕  阅读(429)  评论(0编辑  收藏  举报