派生类

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. 使用Myeclipse导入IDEA项目

    问题描述:使用Myeclipse导入IDEA创建的Web项目,成功导入,但是显示的是一个普通的JAVA项目,无法加载到tomcat下. 解决方案:右键项目Properties,选择Myeclipse- ...

  2. Express中404页面

    404页面是各大网站都需要的. 在做express项目时,应当注意,404页面在app.js中的判断是在最后的,使用这个中间件时,不需要next(),因为它是最后一个了. 它之前一般是router. ...

  3. LeetCode 441.排列硬币(C++)

    你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币. 给定一个数字 n,找出可形成完整阶梯行的总行数. n 是一个非负整数,并且在32位有符号整型的范围内. 示例 ...

  4. type='button'和'submit'的区别

    今天在对表单的项目进行删除时出现了问题,原因就出现在点击input按钮时,这个input属性是type='button'还是type='submit'. 代码大致如下: <script type ...

  5. java学习第十二天

    1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西. 它其实是标准的输入流,对应于键盘录入 B:构造方法 Inp ...

  6. 【linux】关于linux命令

    1. 删除空目录文件夹rmdir [options]      DIRECTORY Ubuntu默认的源是国外的,下载速度会比较慢,cd /etc/apt gedit /etc/apt/

  7. ASP.NET操作DataTable各种方法

    转:http://www.cnblogs.com/isking/p/6178268.html http://www.cnblogs.com/sntetwt/p/3496477.html public ...

  8. 2.C#中的常用快捷键

    快速对齐代码: Ctrl+K+D:  快速对齐代码   (如果代码语法错误,就不能使用) Ctrl+Z:  撤销 Ctrl+S:保存   没事就Ctrl+S一下,防止因为电脑断电,代码全部丢失 Ctr ...

  9. Redis的原子自增性

    INCR key 将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型,或字符串类型的值不能表示为数字,那 ...

  10. Python常用模块(四)

    一.re模块 正则表达式时计算机科学的一个概念,正则表达式通常被用来检索,替换那些符合某个模式的文本,大多数程序设计语言都支持利用正则表达式进行字符串操作. 正则就是用一些具有特殊含义的符号组合到一起 ...