《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 兰州 雨
《C++总结3》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- pat1080. Graduate Admission (30)
1080. Graduate Admission (30) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- 用 JS 做一个数独游戏(一)
用 JS 做一个数独游戏(一) 数独的棋盘由 9x9 的方格组成,每一行的数字包含 1 ~ 9 九个数字,并且每一列包含 1 ~ 9 这 9 个不重复的数字,另外,整个棋盘分为 9 个 3x3 的块, ...
- linux 下库的深入调研
linux操作系统中,linux库文件路径还是比较常用的,于是我研究了一下linux库文件路径,在这里拿出来和大家分享一下,希望对大家有用. 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程 ...
- Bootstrap学习笔记(四)
四.JS插件 概述:与jQueryUI库类似,Bootstrap提供了十几个插件函数.有两种调用方法: (1) 传统JS变成方式 $(...).插件函数.(); (2) 使用data-*扩展属性(推荐 ...
- 从零开始的全栈工程师——js篇(js的异步)
js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...
- h5:erver-Sent Events
对于一般的 Web 应用开发,大多数开发人员并不陌生.在 Web 应用中,浏览器和服务器之间使用的是请求 / 响应的交互模式.浏览器发出请求,服务器根据收到的请求来生成相应的响应.浏览器再对收到的响应 ...
- 20170802,css样式优先级
样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External styl ...
- ComponentOne、Spread、ActiveReports 5折起 加入惊喜惠
慧都十周年,GrapeCity也来共襄盛举,旗下三大产品产品线齐齐参与.界面控件套包ComponentOne.Excel表格控件Spread与报表开发工具ActiveReports,指定授权5折起加入 ...
- R.java文件无法自动生成的问题
如果出现R.java文件无法自动生成的问题,同时Console窗口提示下列信息: Android requires compiler compliance level 5.0 or 6.0. Foun ...
- js有限状态机
http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html 有限状态机(Finite-state m ...