派生类

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. 使用summernote编辑器上传图片,重写onImageUpload

    JS部分:$('.summernote').summernote({ height: 200,//高度 tabsize: 2,//页面上的summernote编辑框的个数 lang: 'zh-CN', ...

  2. 错误 chamfermatching.cpp:969:30: error: the compiler can assume that the address of ‘annotate_img’

    修改 ./build/modules/contrib/CMakeFiles/opencv_contrib.dir/flags.make文件,删掉-Werror=address,然后重新make

  3. winscp介绍与使用

    winscp介绍 WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端.同时支持 SCP 协议.它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑 ...

  4. Cloudera Kudu是什么?

    不多说,直接上干货! Cloudera Kudu是什么? kudu是cloudera在2012开始秘密研发的一款介于hdfs和hbase之间的高速分布式列式存储数据库.兼具了hbase的实时性.hdf ...

  5. php验证码处理

    //基本步骤 1,先创建一张指定宽度和高度的一张验证码图片 imagecreatetruecolor() 2,给验证码图片添加背景颜色 和文字颜色 imagecolorallocate() 3, 在指 ...

  6. QML 程序运行效率

    同样的程序,在 Windows 下面启动时非常慢,而在 Linux 上启动时很快,一方面是因为 qml 界面的创建耗时不同,另一方面是因为读取文件的用时相差太大导致. On Linux 在 Linux ...

  7. jQuery源码浅析2–奇技淫巧

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. Win2D 官方文章系列翻译 - 调整控件分辨率

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-choosing-control-resolution/ 本文旨在讲解如何配置 Win2D XAML 控件使用 ...

  9. c# 远程连接sql server 2008问题

    http://hi.baidu.com/lzghxjt/item/d42bd8f7066a3ad86325d280 远程连接不上可以在防火墙新建入站规则

  10. CSS透明度设置(兼容性)

    一句话搞定透明背景! .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opa ...