C++学习之一--基本介绍
C/C++一般为理工科大一的计算机基础课,其地位相当于数学的加减乘除,语文的汉语拼音一样,因此一定要学习好。以前我们都是先学C语言,然后再学面向对象变成技术,如今很多已经不再首先学C语言而是直接学C++。如此其实也符合时代发展,例如Java和C#就是完全面向对象的,只是需要花费更多时间深入的学习和理解。
这里,首先介绍一下C++的资源,然后简单的介绍一下需要自学的一些内容。
教学参考书:C++ - How To Program, 5th Edition (2005).暂时只有英文版。
书本例题源代码:samples (初学者,最好还是自己按照书本多写写)
对于自己学习的内容,最好动手写一写,写完之后将源代码都保存下来。这有三个好处:1.熟悉了内容,动手试验;2.以后如果忘记了,可以找到相关的源码看一眼就能回忆起来;3.模块化的代码以后经常会来copy,例如读写文件、网络连接等,减少了不少时间。我写过的代码基本上都保留着。
其实这本书不错,将UML、STL、WEB编程也都介绍了。而我以前用的C++就没有这些内容。这对于初学者而言是个很好的指引。
C++初学其实主要是三部分内容:1.了解C/C++的语法语意,了解如何去写Code。2.学习面向对象编程技术,理解继承、封装、重载、多态、虚函数等基本概念。3.标准C++的一些类库的使用。
就我个人而言其难点主要是:1.指针的使用,这是一个很复杂的概念,不仅有指针,还有指针的指针、数组指针、指针数组、函数指针、指针函数。这些都是C语言遗留下来的难题,也是C语言的特点。2.面向对象技术的基本概念的理解,这个有不少容易混淆的地方,但是却是构建大工程的基础内容。3.模板的学习,如果学习STL的话会有不少帮助,现在Java5.0也引入了这个概念。
下面说一下其他的辅助学习内容。C++学习的同时,其实也可以一并学习Java或者C#,因为他们有不少相似之处。首先,两者语法语意基本上完全相同,可以说他们的函数体几乎可以通用;其次,面向对象技术相同,有少数概念如多继承、接口是不一样的。他们的不同点主要是API或者说标准库不同而已,这个肯定是要分别学习的。如果时间充分可以同时学习,否则也可以等以后需要时在学习,真正的举一反三。
其次在C++的学习的同时也可以参考一下C语言书,了解其语法、问题、难点,知道C与C++的一些差别,C语言的一些基本库的使用。
C++学习的同时,还可以参考一下UML书籍,这可以深入的理解面向对象技术,也是作为软件工程的一项基础。
在C++学习结束之后,可以深入也可以扩展。前者,如深入学习C++标准、模板、指针等。后者,主要是MFC的基本编程、UML和设计模式。其他,会有相关的课程教授。
一些推荐的参考和学习书籍如下:
C++ 编程思想 参考书,不利于初学者,较深
UML基础 参考
VC6开发宝典 参考书,VC MFC编程入门
设计模式 理解面向对象技术的应用方法
STL一般数据结构里会大量介绍
可在下面下载
------------------------------------------------------------
校内使用软件可以到ftp2.sjtu.edu.cn下载软件,上面有VC6,VC.NET2003,VC.NET2005。
娱乐的话可以到comic.sjtu.edu.cn看动漫、电影、电视、听音乐
也可以到ftp3.sjtu.edu.cn直接下载电影
学习有问题的话可以到bbs.sjtu.edu.cn的相关版面咨询