zoukankan      html  css  js  c++  java
  • 【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;
    }
  • 相关阅读:
    MySQL中的MRR和BKA
    MySQL中的BNL优化器
    MySQL中索引
    MySQL中的两种排序方式: index和filesort
    设计模式之观察者模式
    设计模式之策略模式
    设计模式之模板方法
    java和JavaScript的区别
    HTML 简介--from app (W3)
    与代码同行-五年计划
  • 原文地址:https://www.cnblogs.com/H2Rain/p/10700697.html
Copyright © 2011-2022 走看看