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 机 ...
随机推荐
- 凭什么相信 5G 很安全?
导读 电信行业及其专家指责科学家说,他们研究的5G无线技术所带来的手机辐射制造了恐慌.由于我们的许多研究工作都是由公共资助的,因此我们相信从道德的角度来看,我们有责任告知公众,经过同行评审的科学文献究 ...
- Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法
问题: 连接mysql数据库时,出现如下 提示: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQ ...
- SpringBoot之数据访问和事务-专题三
SpringBoot之数据访问和事务-专题三 四.数据访问 4.1.springboot整合使用JdbcTemplate 4.1.1 pom文件引入 <parent> <groupI ...
- One-Hot Encoding(独热编码)
前几天查了一些与独热编码相关的资料后,发现看不进去...看不太懂,今天又查了一下,然后写了写代码,通过自己写例子加上别人的解释后,从结果上观察,明白了sklearn中独热编码做了什么事. 下面举个例子 ...
- Eth合约攻击
前言 Ethernaut是一个类似于CTF的智能合约平台,集成了不少的智能合约相关的安全问题,这对于安全审计人员来说是一个很不错的学习平台,本篇文章将通过该平台来学习智能合约相关的各种安全问题,由于关 ...
- Flask - 多APP应用(不太重要)
1. 多APP应用 请求进来时,可以根据URL的不同,交给不同的APP处理.一般用蓝图也可以实现.一般不写多app应用. from werkzeug.wsgi import DispatcherMid ...
- 寒假所做事情日志-Office重新激活
日期:2020.01.18 博客期:127 星期六 好吧,今天出了一趟远门,将近傍晚才回来.任务目标其实相当于什么也没做,但回来发现Office居然过期了,老师给的那些文件居然无法修改了,于是乎剩下的 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:表示需要谨慎操作的按钮
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- java并发:初探sleep方法
sleep与wait sleep是Thread方法,使得当前线程从运行态变为阻塞态.但它不会释放对象的锁. wait方法是Object方法,它的作用是使得当前拥有对象锁的线程从运行态变为阻塞态, 它会 ...
- HDU 5524:Subtrees
Subtrees Accepts: 60 Submissions: 170 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 13107 ...