zoukankan      html  css  js  c++  java
  • [原创]C++中一些重要概念

    1、虚函数

    虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。当把基类的某个成员函数声明为虚函数后,允许在其派生类中对该函数重新定义,赋予它新的功能,并且可以通过指向基类的指针指向同一类族中不同类的对象,从而调用其中的同名函数。

    2、纯虚函数

    class <类名>
    {
    virtual <类型><函数名>(<参数表>)=0;
    };
    纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
     
    3、虚基类
    代码中表现更像“虚继承”,基类只产生一个实例,用来解决多重继承的二义性问题。
    class CParent 

    .... 
    }; 
    class CChild : virtual public CParent 

    .... 
     
    4、拷贝构造函数
         浅拷贝就是成员数据之间的一一赋值:把值一一赋给要拷贝的值。但是可能会有这样的情况:对象还包含资源,这里的资源可以是堆资源,或者一个文件。。当值拷贝的时候,两个对象就有用共同的资源,同时对资源可以访问,这样就会出问题。深拷贝就是用来解决这样的问题的,它把资源也赋值一次,使对象拥有不同的资源,但资源的内容是一样的。对于堆资源来说,就是在开辟一片堆内存,把原来的内容拷贝。 

         如果你拷贝的对象中引用了某个外部的内容(比如分配在堆上的数据),那么在拷贝这个对象的时候,让新旧两个对象指向同一个外部的内容,就是浅拷贝;如果在拷贝这个对象的时候为新对象制作了外部对象的独立拷贝,就是深拷贝 。
     
    5、static
    static全局变量与普通的全局变量有什么区别:
    static全局变量只初使化一次,防止在其他文件单元中被引用;   
    static局部变量和普通局部变量有什么区别:
    static局部变量只被初始化一次,下一次依据上一次结果值;   
    static函数与普通函数有什么区别:
    static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
     
     
  • 相关阅读:
    【干货】Windows系统信息收集篇
    【干货】SIFT-Workstation 下载与安装 不跳过每一个细节部分
    【干货】从没有数据结构的二进制中(内存或者未隐藏的数据块)提取关键信息
    【干货】操纵时间 感受威胁 MAC time时间戳视角
    【干货】证据被毁?数据恢复出来
    【干货】已Window7 系统为例,谈谈boot引导程序-------附带看看数据隐藏
    IDEA创建各种不同的工程的方法
    IDEA全局配置
    IDEA项目添加第三方依赖
    IDEA打开最近打开的项目以及关闭项目
  • 原文地址:https://www.cnblogs.com/librasun/p/5399265.html
Copyright © 2011-2022 走看看