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;
    }
  • 相关阅读:
    lua 源码阅读 5.3.5 笔记
    lua 源码阅读 1.1 -> 2.1
    lua 1.0 源码分析 -- 总结
    lua 1.0 源码分析 -- 2 内存回收
    lua 1.0 源码分析 -- 1 lua 的虚拟指令
    protoc-c 阅读笔记
    protoc-c 安装记录
    转前端开发中常用工具函数总结
    sql 设计规范
    web.config文件详解[转]
  • 原文地址:https://www.cnblogs.com/H2Rain/p/10700697.html
Copyright © 2011-2022 走看看