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 机 ...
随机推荐
- 夯实Java基础(二十一)——Java反射机制
1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...
- static在c\c++中的作用(翁恺c++公开课[28-29]学习笔记)
static相对来说是一个较复杂的修饰符,c++中的static在c的基础之上又包含了static在类中的应用(也就是说多了static的成员变量和static的成员函数):c\c++中静态变量.对象 ...
- JSTL中获取URL参数
使用JSTL时,URL会被隐含的对象param包裹起来,使用param.变量名,直接获取值 <body>hello:${param.name}</body> 依据此逻辑,在使用 ...
- 设计模式课程 设计模式精讲 20-2 解释器模式coding
1 代码演练 1.1 代码演练1(解释器模式coding) 1.2 代码演练如何应用了解释器模式 1 代码演练 1.1 代码演练1(解释器模式coding)(该案例运用了栈的先进先出的特性) 需求: ...
- UniGUI设置背景图片(09)
主要是Background和LoginBackground属性, 类似地Login窗口背景图也可这样修改 UniServerModule.MainFormDisplayMode:= mfPage;/ ...
- BigDecimal类用于计算(不会丢失精度)
- 【快学SpringBoot】过滤XSS脚本攻击(包括json格式)
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d079e555188251ad81a28d9 XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cas ...
- Django线上项目后台admin不显示问题
记一次django项目的线上部署错误,django+nginx 一.问题描述 在将django项目部署到阿里云(nginx作为web服务器)上之后发现出现后台管理界面admin不显示样式. 二.问题分 ...
- Python字符串(二)
四.类型转换 1. 基本语法: 类型名(数据) --- 将指定数据转换成指定类型 说明:类型名 -任何python支持的,或者自定的类型都可以数据 -需要转换的对象,类型不同要求可能不一样 2. 转换 ...
- jQuery Validation Engine(三) 基本常识
1:response.validateFail(fieldId, "机构英文名已被其他人使用"); //field为这个字段的id,”“ 双引号的内容,是提示语 <!DOCT ...