C++ 语言程序设计(清华大学)2
面向对象
1.面向对象程序基本特点:抽象、封装、继承、多态
2.类分为:公有类型成员public(接口),私有类型成员private(本类函数访问,类外要用友元函数访问),保护类型成员protect(在继承派生时不同)
3.类中成员之间直接使用成员名互相访问。从类外访问成员使用"对象名.成员名"方式访问public成员
4.构造函数的作用:在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的初始状态,没有返回类型(int void)和return语句。
5.默认构造函数:写在构造函数下面,参数默认状态设为0初始化,以免忘记初始化时报错。
6.委托构造函数:保持代码实现的一致性,修改一处,其他的委托构造函数同步修改
7.复制构造函数:区别初始化复制 和 赋值(不用调用复制构造函数)。 简单程序可以使用默认的复制构造函数,如果有指针的话,默认复制构造函数的功能就不够用了,复制构造函数可以按照自己的意愿"复制"
复制构造函数被调用的三种情况:定义一个对象时,以本类另一个对象作为一个初始值,发生复制构造;
如果函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;
如果函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造
8.析构函数:完成对象被删除前的一些清理工作,在对象的生存期结束的时刻系统自动调用析构函数,没有返回类型(int void)和return语句。
9.类的组合:类中的成员是另一个类的对象,可以在已有的抽象基础上实现更复杂的抽象。
10.前向引用声明:类应该先声明,后使用。如果需要在某个类的声明之前,引用该类,则应进行前向引用声明。前向引用声明只为程序引入一个标识符,但具体声明在其他地方。
11.UML(可视化面向对象建模语言)简介
12.结构体:在C++中,结构体是一种特殊形态的类,唯一区别是类的缺省访问权限是private,结构体的缺省访问权限是public。(类自私,结构体大方)。定义主要用来保存数据,而没有什么操作,一般使用结构体
13.联合体:按最多字节数的成员占存储空间,成员类型每个时刻只有一个起作用
14.枚举类:实质是整数的一个子集。优势是作用域强(其作用域限制在枚举类中),转换限制(枚举类对象不可以与整型隐式地互相转换),可以指定底层类型enum class Type: char{A,B,C}。
数据的共享和保护
1.标识符的作用域与可见性
函数原形作用域:形参() 局部作用域:形参()和函数体内{} 类作用域:类体和类外实现的本类成员函数的函数体 文件作用域:开始于声明点,结束于文件结束的地方
外层变量覆盖整个范文,当内层定义的变量与外层的变量同名,则内层变量会屏蔽外层变量
2.对象的生存期
静态生存期:函数内部声明静态生存期对象,要冠以关键字static。全局变量,具有静态生存期;静态局部变量,具有全局寿命,局部可见。只有第一次进入函数时被初始化。静态变量不初始化,默认为0。
动态生存期:块作用域声明的,没有用static修饰的对象是动态生存期的对象(习惯称局部生存期的对象)。局部变量,具有动态生存期。
3.类的静态数据成员:在类里用关键字static声明,为该类的所有对象共享,静态数据成员具有静态生存周期。必须在类外定义和初始化,用(::)来指明所属的类。
4.类的静态函数成员:主要用于处理该类的静态数据
非静态函数成员属于某一个对象,需要用对象名.函数名访问。静态函数成员除此之外,还能用类名.函数名调用。 .....................................................有很多疑问需要看第六章
5.类的友元:通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块本是被隐藏的信息。在封装和效率方面达到平衡。
6.共享数据的保护:
C++ 语言程序设计(清华大学)2的更多相关文章
- 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...
- 2019年春季学期《C语言程序设计II》助教注意事项
本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...
- 《C++语言程序设计》初学者必备教材
很多刚开始学习C++语言的同学,都会遇到一个问题:很多教材都不适合零基础的初学者.它们有的枯燥乏味,让人难以消化吸收,有的层次结构混乱,很难理清楚知识点,有的更是难度太大,没有代码的过渡,就开始讲解算 ...
- 资深程序员推荐必备书籍 《C语言程序设计》
当下,IT行业发展日趋迅猛,产值成倍增长,高薪的诱惑更是驱使许多人想要进入IT行业发展.为了使大家更全面理解C语言程序设计,由千锋教研院高教产品研发部编著.清华大学出版社倾情出版的<C语言程序设 ...
- C语言程序设计入门学习五步曲(转发)
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- C语言程序设计第4堂作业
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决. 本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...
- 《VB语言程序设计(第3版)》总结
我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
随机推荐
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定引用右对齐
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- 【PAT甲级】1034 Head of a Gang (30 分)
题意: 输入两个正整数N和K(<=1000),接下来输入N行数据,每行包括两个人由三个大写字母组成的ID,以及两人通话的时间.输出团伙的个数(相互间通过电话的人数>=3),以及按照字典序输 ...
- Linux CentOS7 VMware 安装PHP5 、安装PHP7
一.安装PHP5 PHP官网www.php.net 当前主流版本为5.6/7.1 cd /usr/local/src/ wget http://cn2.php.net/distributions/ph ...
- 表格中td限宽溢出以省略号代替
table.ms-listviewtable { table-layout:fixed; width: 100%; } table.ms-listviewtable td[role="gri ...
- requests---requests封装请求类型
我们在做自动化的时候,肯定是代码越简洁越好,代码重复量越少越好,这里呢,我们可以通过把requests的请求类型都封装起来,这样编写用例的时候可以直接进行请求 requests方法封装 我们通常用的最 ...
- 单表千亿电信大数据场景,使用Spark+CarbonData替换Impala案例
[背景介绍] 国内某移动局点使用Impala组件处理电信业务详单,每天处理约100TB左右详单,详单表记录每天大于百亿级别,在使用impala过程中存在以下问题: 详单采用Parquet格式存储,数据 ...
- python 通过UDP传输文件
使用一个简单的python脚本将一个本地文件以码流的形式,通过UDP协议发送到对端: import socket import os import stat import struct MAX_P ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:pvuv统计案例理论
实验目的 复习pv.uv的概念和原理 了解pv.uv的实际意义和获取方法 实验原理 前面我们已经基于mapreduce进行数据的etl处理,实验有很多不足之处,这次实验我们是基于url数据进行pv和u ...
- sentinel控制台
下载sentinel源码包:https://github.com/alibaba/Sentinel/tree/master,根据自己需要下载不同版本的分支,博主下载得是1.6 下载后解压,然后进入se ...
- Broadcast机制(二)
内容提纲: 在本节课当中,我会继续为大家讲解Android的广播机制,重点内容有以下的两个方面: a) 在应用程序当中注册BroadcastReceiver的方法 b) ...