zoukankan      html  css  js  c++  java
  • c++笔记2

    一 继承和多态、虚函数:类不必重复造轮子,可以从其它基类派生而来(多重继承(由多个基类的特点)和虚拟继承(基类的一些特性在继承之间共享))。派生类需要在自己的头文件中包含基类头文件,切派生类声明要指明继承的基类,派生类的扩展部分可以放在派生类的私有部门;基类的成员分为共有(在程序的任何时刻都可访问,默认是内联函数)、私有(只有基类自己可访问)、受保护(给派生类的接口)。

    虚函数:类似__WEEK__关键词,相当于函数重定向,如果你不重写该函数则用默认的(基类的函数),否则调用的时候用你自己的函数。注意虚函数和函数重载的区别:函数的重载是靠参数(个数,类型、顺序)而非返回值(not care),但函数名必须相同且必须在同一个类中;而虚函数的函数名、返回值、参数(个数 类型 顺序)必须相同,它们是出现在继承的关系中。基类中必须有virtual。即出现以下情况,函数的调用取决于是基类指针还是派生类指针;只有基类加virtua关键字才说明是虚函数关系:

    1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)
    2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)

    派生类向基类的传参:序列化列表,在构造函数后加  “: _val( val ){} 

    二泛型设计与类模板:操作相同但参数类型不同可以将其设置成类模板,也即将参数化,方法是在类前面或者函数前加template < class elemType > ,而在需要可能有变化的参数前都加class elemType<  参数类型> 。

    三异常处理设计:碰到异常会raise/throw异常,然后由catch获得这个异常,从国cerr<<进行输出。if ( ! infile ) {
    string errMsg( "unable to open file: " );
    errMsg += fileName;
    throw errMsg;
    }

    catch( string exceptionMsg ) {
    log_message( exceptionMsg );
    return false;
    }

    四命名空间using namespace std:

    为了防止标准 C++库的组件污染用户程序的全局名字空间 所有标准 C++库的组件都声明在一个被称为 std 的名字空间内 .所以只include头文件还是不能使用其组件。但是为了更精细的可见,可用域操作符::对命名空间的组件进行申明 

    名字空间别名 namespace alias 允许用一个可替代的 短的或更一般的名字与一个现有的名字空间关联起来 ,相当于用#define 起了个新名字这样简短些。

    五 容器、标准数组-向量 泛型算法:向量提供了容器的一些操作,但具体的一些排序、查找等操作都是通过泛型算法实现的

    #include <vector>
    #include <algorithm>

  • 相关阅读:
    解决ios下的微信页面背景音乐无法自动播放问题
    vue Vue-cli 笔记
    document.documentElement和document.body区别介绍
    GD库使用小结---2
    GD库使用小结---1
    踩到两只“bug”
    CI加载流程小结
    文件加载---理解一个project的第一步
    缓存的使用
    小小的分页
  • 原文地址:https://www.cnblogs.com/jieruishu/p/9441025.html
Copyright © 2011-2022 走看看