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     兰州      雨

  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/niu3/p/9352110.html
Copyright © 2011-2022 走看看