北京邮电大学 北京邮电大学

C++程序设计入门(上)

所属微专业:

图片
课程概述

    本课程不提供教学服务、作业批改及证书发放。

  如果希望及时获取课程相关的重要信息,请关注本课程微信公众号 MyAlohaWorld 或者扫描下方二维码

-------------------------------------------------------------------------------------

    本课程讲什么?C++程序设计(后面一小段文字你可以略过,因为没学之前,看了也不懂,学了之后,不看也懂)。包括:对象、类、构造/析构函数、运算符重载、继承、虚函数与多态等


    学完本课程能让你做什么?简单说,就是让你有了成为码农的基础(只学这门课,你距离码农这个高大上的职业还有很远的距离——从天顶星到地球的距离)。复杂点儿说,本课程培养学生阅读和编写C++程序的能力,通过课堂讲授和上机实验练习相结合的方法,使学生能独立完成基础的C++面向对象程序的开发。


    本课程有啥特色?打肿脸充胖子,特色是“边学边做,基于图形界面的实验”。其实真特色只能说是后边一半。您看哪门程序设计课不是“边学边做”?可是“基于图形界面的实验”要多学一门图形库的函数,要比非图形界面的实验难那么一点点。


    学完本课程你不能做什么?1.开发一个游戏打败MineCraft;2.开发一个黑客程序黑掉本课程网站;3.写一个程序,让自己变成高帅富或者白富美...... 


    这么多编程语言,C++到底是个啥水准?看看我的这篇博客文章。如能博您一笑,鄙人不胜荣幸。记住啊,再烂的语言也有牛人用,再牛的语言也有烂人用。所以,语言不是问题,问题是用语言编程的人。


证书要求

本课程不提供证书服务。


章节试看
  • 关于C++及课程

  • C++内存模型

预备知识

1. 计算机导论(大学计算机基础)

2. C语言程序设计

3. C/C++集成开发环境

4. 程序调试方法(断点、单步、观察变量等)

授课大纲

1.绪论 (1学时)

  C++学习方法;

  C++开发工具使用方法;

2. EGE图形库介绍(2学时)

  Ege图形库介绍;

3. C++与C的差别 (3学时)

  数据类型,const;

  函数;引用;

  动态内存管理;C++内存模型初步;

4.对象和类 (4学时)

  对象和类的概念及语法定义;

  创建对象及访问对象成员;应用构造函数及析构函数;

  数据成员的作用域;静态成员;友元函数和友元类;

5.对象与类的更多内容

6.继承和多态 (2学时)

  继承的概念和应用;

  继承中的构造函数和析构函数;

  虚函数在继承中的作用,静态联编与动态联编;

实验 (4学时,课外)

  图形库的使用,类的定义和对象的创建;

  类的构造/析构函数、静态成员变量的使用;

参考资料

本课程的教科书蓝本如下:


  1. 英文版: Introduction to Programming with C++》,影印版,Y. Daniel Liang,机械工业出版社,2008

  2. 中文版:《C++程序设计》 ()Y. Daniel LiangISBN: 9787111240174,机械工业出版社,2008

注1:也可以选用该教材的第3版(2013版),虽然章节略有不同,但主体内容一致


注2:有一定英语基础的同学(高中毕业,词汇量3000~4000左右)优先选用英文版。计算机英语很少出现复杂的语法,唯一的障碍就是一些计算机领域的专有词汇。天天读自然也就熟悉了。如果你是初次阅读英文版图书,那么可能需要有3-6个月的适应期。


-------------------


本课程的参考资料如下:

  1. 《C++ Primer》第5版(中文),豆瓣上的介绍【点这里】。适合自学,不适合课堂讲授。因为我也搞不定它,看了一半就想转学Java了。

  2. 《Essential C++》(中文),大神写的比较薄的书,豆瓣上的介绍【点这里】。如果你C学得比较好或者Java学得比较好,那么可以看它。

  3. 《The C++ Programming Language》,C++他爹写的,豆瓣上的介绍【点这里】以及【点这里】。对于初学者来说,你买这本书可以用来当词典、做枕头或者炫富,如果不差钱儿的话就别犹豫了。

常见问题
  1. 本课程所用的IDE为“Dev-Cpp 5.6.0 MinGW 4.8.1”下载请【点这里】。由于课程练习需要使用第三方图形库,目前只提供在前述IDE中的配置方法。其它IDE,包括Dev-Cpp其它版本,都需要自己做一些微调。建议使用前述版本的IDE(注意:Dev-Cpp版本为5.6.0,配套编译器为 MinGW 4.8.1)

  2. 本课程所用的第三方图形库为EGE开源图形库。该项目的主页请【点这里】,该图形库作者君的主页请【点这里】。但是,注意:本课程所使用的EGE图形库中额外增加了数个为了C++课程而自行开发的函数,与原始的13.04版本不兼容绝对绝对不要去下载EGE的官方版来用,否则你就等着渡劫吧!请到课程第2单元下载本课程所用图形库 EGE-13.04.02

  3. 为啥你用那么老的教材,还不讲C++11/14标准?因为,老崔很懒啊...... 首先,虽然C++他爹说“C++11看起来像一门新语言”,但是,但是,面向对象的那点儿本质的东西还是没变啊; 其次,C++11增加或者修改的部分,好多都是高级特性,比如lambda、比如并行编程、比如移动语义,而另外一些看起来很爽的东西,比如auto类型推导,在不学数据类型的情况下,又有什么用呢;最后,C++11/14仍然是兼容C++98/03的,这门课程中的知识,是不过时的。