面向对象

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的更多相关文章

  1. 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总

    中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  2. 2019年春季学期《C语言程序设计II》助教注意事项

    本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...

  3. 《C++语言程序设计》初学者必备教材

    很多刚开始学习C++语言的同学,都会遇到一个问题:很多教材都不适合零基础的初学者.它们有的枯燥乏味,让人难以消化吸收,有的层次结构混乱,很难理清楚知识点,有的更是难度太大,没有代码的过渡,就开始讲解算 ...

  4. 资深程序员推荐必备书籍 《C语言程序设计》

    当下,IT行业发展日趋迅猛,产值成倍增长,高薪的诱惑更是驱使许多人想要进入IT行业发展.为了使大家更全面理解C语言程序设计,由千锋教研院高教产品研发部编著.清华大学出版社倾情出版的<C语言程序设 ...

  5. C语言程序设计入门学习五步曲(转发)

    笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...

  6. 160809208沈昊辰c语言程序设计实验选择结构设计

    <C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...

  7. C语言程序设计第4堂作业

    大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决.   本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...

  8. 《VB语言程序设计(第3版)》总结

    我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...

  9. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  10. 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...

随机推荐

  1. postgres语句

    select DISTINCT lxbh from "20190816183245_ld_lxbh_2018" WHERE CHAR_LENGTH("lxbh" ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:使段落突出显示

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  3. Java基础 -4.3

    While循环结构 while循环 public static void main(String[] args) { while(布尔表达式) { 条件满足时执行; 修改循环条件; } } do wh ...

  4. Linu计划任务/crontab命令

    周期性任务计划 相关程序包: cronie:主程序包,提供了crond守护进程及相关辅助工具 cronie-anacron:cronie的补充程序:用于监控cronie任务执行状况:如cronie中的 ...

  5. Educational Codeforces Round 72 (Rated for Div. 2)E(线段树,思维)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;#define BUF_SIZE 100000 ...

  6. NOIP2019 旅行

    注意!注意!前方高能!本题卡常!!! 我们发现,所有的狗血剧情都在告诉我们,树的话直接dfs就出来了 那么基环树呢? 其实只要暴力删边,理论上的复杂度是可以过的qwq 但是删哪条边呢? 这里要引出一个 ...

  7. 【C++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)

    这是我写的第一个博客关于C++的一些笔记,我不会写的太深奥,因为这样很多人会看不懂(我刚开始学C语言深受其害).个人觉得C++这门语言有些类似于C语言但是有些函数的用法还是有不一样的.C语言中的头文件 ...

  8. C++11并发编程3------线程传参

    /* 基本类型传值 */ #include <iostream> #include <thread> void func(int num) { num = ; std::cou ...

  9. Autoit里用多进程模拟多线程

      一直以来Autoit都不支持多线程,因此一些需要同时运行多个循环的操作也就无法实现.这个问题在其它的某些语言里也经常出现,解决的方法就是使用多进程. 所谓多进程,就是同时运行多个子进程,每个子进程 ...

  10. “嘭、嘭、嘭”---C/S架构下的心跳机制

    本人想使用AU3开发多客户端.一服务端.需要使用到心跳机制,即 在线状态实时更新以及掉线自动重连. 搜索网络发现没有人用AU3写心跳机制. 下面是一篇转帖(原文地址:http://www.cnblog ...