zoukankan      html  css  js  c++  java
  • 《C++总结3》

    派生类

    Class student1:public student   //表示公用继承,默认为私有的

    {  public :

    ……

    ……

    }

    继承的时候一定是全部继承来,但是可以自己设定访问属性,或是覆盖父成员

    一般是抽象基类   构造函数和析构函数不能继承

    基类不能访问派生类

    继承方式就是对父成员的属性改造,私有>保护>公有(把儿子也当外人)

    不管怎么样,父私有的,子都不能继承和调用

    多级派生 常用的是公用继承

    派生类构造函数:

    Student1(int n,string nam,char s,int a):student(n,nam,s)

    对象中的对象(子对象)

    含有子对象的派生类的构造函数:

    Student1(int n,string nam,int n1):student(n,nam),monitor(n1,nam1)

    {

    ……//可以为空

    }

    多层派生的构造函数:

    Student2(int n,string nam,int a,int s):student1(n,nam,a)

    父和子的构造函数都是可以默认的

    多重继承:

    Class D:public A,private B,protected C

    {

    ……

    }

    多重继承构造函数:

    Graduate(string nam,int a,char s,string t,float sco,float w):

    teacher(nam,a,t),student(nam,s,sco),wage(w)

    {

    ……

    }

    多重继承会有二义性,引用的时候要指明

    虚基类 合开合的思想,第一个合就是虚基类  虚继承

    虚基类:

    Class A

    {  A(int){  }

    ……

    };

    Class B:virtual  public  A

    {  

    B(int n):A(n)

    {

    ……

    }

    ……

    ……

    };

    Class C:virtual  public  A

    {  

    C(int n):A(n)

    {

    ……

    }

    ……

    ……

    };

    Class D:public B,publicC

    {D(int n):A(n),B(n),C(n)  {  }

    ……

    };

    *****************

          A         ¦

    B     C   D     ¦

          E         ¦

    *****************//注意D比较特殊

    域运算符::

    派生类对象可以给基类对象赋值,也可以作为父类对象的引用还有指针

    派生类的成员可以是基类的对象 (这其实就是类的组合)

    任何的机器,只要是运行应用,界面什么都是OS控制的,就一定有目标代码存在,应用一般是完整的汇编代码。但是产生应用的过程,是要用到专门的工具和平台,要用到类库。

    任何运行程序都是和OS兼容的,而汇编代码都是和CPU兼容的,这是计算机核心。

    参数类型推导   被覆盖的依然可以通过域运算符使用

    静态成员

    重载(静态多态)是多提的一种方式之一,还有虚函数(动态多态)

    虚函数:在派生类中定义与基类同名字的函数,并且可以通过基类指针或引用来访问

    虚函数就是来避免覆盖冲突的

    静态关联(早期关联)  动态关联(滞后关联)//用基类指针对象来访问

    虚析构函数  纯虚函数

    Virtual  int  max( )=0;

     抽象类  编译系统会构造虚函数表

    类族  标准模板库STL   标准IO  文件IO 串IO

    总体上来说,C++要比C好很多,各有各的优点吧

    数据流表示从内存到IO的

    IO缓冲区   流类  本质就是对象之间的活动,网社交的活动构成我们时空状态的变化

    头文件里的流对象 类库的接口就是头文件

    Cin流 cerr(特点就是不经过缓冲区) clog流(标准出错流) 头文件里运算符重载    

    格式控制头文件iomanip

    流对象成员函数     格式标志

    Cout.put(‘a’).put(24);   putchar

    EOF文件结束    cin.get( );  getline( )    eof( )  peek( )   putback( )

    Ignore()

    文本文件(字符文件)  二进制文件(字节文件,内部格式文件)

    文件流类  输出文件(接受从内存的数据)

    Ofstream outfile;  //建立流对象

    Outfile.open(“niu.txt”,ios::out);

    虚函数的重载性   

    异质链表(指针数组):

    Student  *stu[100];

    类属参数的函数就是模板函数  类属是参数化类型

    模板是对于数据类型的模板  类模板  函数模板  模板类和模板函数是实例化的

    这也是泛型程序设计

    模板说明:

    Template<typename T> 或者Template<class T>

    类属类型的本质是int float……(前提是要定义好)

    类模板就是类的成员里面的变量属性的代号

    在类外定义函数的时候或者是实例化的时候在有T的地方加上array<t>即可

    模板类的友元函数和友元类

    标准模板库STL里的容器(数据结构集合)container 迭代器  

    容器:序列容器   关联容器    容器适配器   近容器

    模板向量   构造容器

    vector<int> V(10,0);

    容器的本质是系统的函数调用

    Vector<int> V(10,0);  里面的数据为容器对象

    容器就是数据结构的元素的集合,是一种特殊的类,在调用使用上和类一样

    容器是一个大对象,对象里面有小元素对象

    容器迭代器很有好处(本质是容器指针)

    Iterator迭代器   迭代子(本质是指针)

    串流对象 string对象   串流本质是内存流

    匿名对象   顺序索引文件   追加   标识常量   自定义流

    二进制文件为随机存取   流指针   

    Input.seekg(120);

    Infile.seekg(-30,ios::cur);

    outfile.seekg(-30,ios::end);

    ostream写指针函数   istream读指针函数

    异常检测和处理  函数调用错误时产生异常,然后调用的人去处理这个异常

    抛出异常之后这个函数就终结了,所以就是不唤醒,异常处理像是中断

    Throw抛出    try捕获  catch处理

    Throw  niu//niu为异常类型

    Try

    {

    ……

    }

    Catch(参数1)

    {

    ……

    }

    Catch(参数2)

    {

    ……

    }

    ……

    ……

    异常列表    异常是在函数定义时候定义的

    再抛出异常传递    构造函数里的异常处理

    图标   cin  cout的重定向    查找分类函数    文本窗口IO函数

    命名空间(作用域)   嵌套命名空间  

    命名空间是来解决名字冲突的    命名空间成员   命名空间是大的特殊的类

    无名命名空间     using  标准命名空间std

    命名空间比头文件更大

    using namespace std; //std里有标识符,要避免自己定义的与它的重名

    Namespace            //无名命名空间

    {

    Void fun()

      {

       cout<<”niu”<<end1;

      }

    }    //命名空间成员可以是函数,作用和库函数一样

     ____________________________________________________________________

     至此,C++概要总结完毕!

                                                       2017  6.9     兰州      雨

  • 相关阅读:
    jQuery tablesort插件推荐
    更改firefox默认搜索引擎
    Chrome Firefox 自定义背景色
    python 基础之列表切片内置方法
    python 基础之while无限循环
    python 基础之for循环有限循环
    python 基础之格式化输出
    nginx之HTTP模块配置
    Kubernetes之pod的属性
    nginx的工作流程
  • 原文地址:https://www.cnblogs.com/niu3/p/9352110.html
Copyright © 2011-2022 走看看