欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-19 23:17:41
类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大。 实例化类有两种,一个是从栈中实例化对象: 另一个是从堆中实例化对象: 这两种实例化后的对象的访问方式也是有所不同的,如果是从栈中实例化的对象的成员,访问用点(.)即可: 如果是从堆中实例化的对象的成员,访问用箭头(->)即可: 如 ......

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

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

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