• 【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;
    }
  • 相关阅读:
    BBB-media配置
    BBB-添加文章及文章中图片
    inclusion_tag模块
    BBB-登录注册
    Django-auth模块
    Django-csrf中间件
    基于django中settings中间件源码思想,实现功能的插拔式设计
    Django之中间件
    Django之cookie与session
    java中public与private还有protect的区别
  • 原文地址:https://www.cnblogs.com/H2Rain/p/10700697.html
Copyright © 2020-2023  润新知