派生类

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

《C++总结3》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. pat1080. Graduate Admission (30)

    1080. Graduate Admission (30) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  2. 用 JS 做一个数独游戏(一)

    用 JS 做一个数独游戏(一) 数独的棋盘由 9x9 的方格组成,每一行的数字包含 1 ~ 9 九个数字,并且每一列包含 1 ~ 9 这 9 个不重复的数字,另外,整个棋盘分为 9 个 3x3 的块, ...

  3. linux 下库的深入调研

    linux操作系统中,linux库文件路径还是比较常用的,于是我研究了一下linux库文件路径,在这里拿出来和大家分享一下,希望对大家有用. 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程 ...

  4. Bootstrap学习笔记(四)

    四.JS插件 概述:与jQueryUI库类似,Bootstrap提供了十几个插件函数.有两种调用方法: (1) 传统JS变成方式 $(...).插件函数.(); (2) 使用data-*扩展属性(推荐 ...

  5. 从零开始的全栈工程师——js篇(js的异步)

    js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...

  6. h5:erver-Sent Events

    对于一般的 Web 应用开发,大多数开发人员并不陌生.在 Web 应用中,浏览器和服务器之间使用的是请求 / 响应的交互模式.浏览器发出请求,服务器根据收到的请求来生成相应的响应.浏览器再对收到的响应 ...

  7. 20170802,css样式优先级

    样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External styl ...

  8. ComponentOne、Spread、ActiveReports 5折起 加入惊喜惠

    慧都十周年,GrapeCity也来共襄盛举,旗下三大产品产品线齐齐参与.界面控件套包ComponentOne.Excel表格控件Spread与报表开发工具ActiveReports,指定授权5折起加入 ...

  9. R.java文件无法自动生成的问题

    如果出现R.java文件无法自动生成的问题,同时Console窗口提示下列信息: Android requires compiler compliance level 5.0 or 6.0. Foun ...

  10. js有限状态机

    http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html 有限状态机(Finite-state m ...