派生类

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. Linux常用操作命令介绍

     Linux常用操作命令介绍 重要概念 CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制.查询指令:cat /proc/cpuinfo 内存:大脑中的记忆区块,将皮肤.眼睛等所收集到的信 ...

  2. Flutter安装教程

    前言 自Flutter beta版发布, 经过几个月的发展, 它已成为了github社区开源项目活跃度的Top50.加上近日Google的Flutter Live 2018全球同步直播宣传,与 Flu ...

  3. ApplicationContextAware的作用

    ApplicationContextAware其实我们看到---Aware就知道是干嘛用的了,就是属性注入的, 但是这个ApplicationContextAware的不同地方在于,实现了这个接口的b ...

  4. uml的十三种图形

    1.用例图:对系统的使用方式分类. 2.类图:显示类和它们的相互关系. 3.对象图:只显示对象及它们的相互关系. 4.活动图:显示人或对象的活动,其方式类似于流程图. 5.状态机图:显示生命周期比较有 ...

  5. jQuery中表单的常用操作(全选、反选)

    表单的全选.反选操作一 <form method="post" action=""> 你爱好的运动是?<input type="ch ...

  6. [持续更新] Linux基础的重要命令

    命令总结:100个左右 mkdir 方法一 [root@localhost ~]# mkdir /test && ls -ld /test 方法二 [root@localhost ~] ...

  7. sharepoint2007就地升级2010系列(四)升级数据库

    上一篇我们完成了系统的升级,今天我们来看一下SQL2005X64是如何升级到SQL2008X64的. 首先,我们先停掉所有sharepoint的服务 其实网上的文档并没有写到这一步,但是我个人觉得,要 ...

  8. ArcGIS Engine中的Symbols详解(转)

    本文来源:http://blog.csdn.net/mengdong_zy/article/details/8980842 原文如下: Symbols Symbol level drawing Joi ...

  9. [原创]Debian9 从零编译配置Redis4.0

    序言 Redis 一.准备工作 1.1 更新系统安装包列表 没啥,就他喵想用个最新的. # apt update 1.2 创建需要使用的目录 创建目录source和web,分别用来放源码和编译后的文件 ...

  10. Struts2_模块包含

    <include file="login.xml"/> 包含其他的模块. 项目开发中,分模块协调开发有用. 链接: http://pan.baidu.com/s/1bo ...