练武不练功,到老一场空,
练功不练武, 十年白辛苦!
很多学习C++的朋友,也许有这样一种想法:我辛苦学习了厚厚的一本C++教科书,怎么感觉程序还是什么也不会写?
原因不外有二:
- 对 C++ 只是懂了语法,真正含义仍然理解不够,很多语法知识点,仅是知其然,而不知其所以然。总之,基本功还是不够。
- 更有可能的是,光光学了C++的功,没有学习C++的武,所以,就像一位武林高人,看上去"内力"很深厚,但手上一点招势不会。
学习C++编程,就得弄清C++的"武"和"功"各是什么。
功 -- C++语言 (语法、设计),这方面不细说了,这是基本功。
表达式,运行符,语句 ,流程,函数,传参,引用,指针,对象,派生,虚函数,友员等等。
武 -- C++实用库大全:
- STL 容器类算法,帮助你迅速跳过常用算法及数据库的槛。
- GUI 比如跨平台的wxWidgets,学习C++,你总不会只想写那种DOS/控制台界面吧?总会永远只写类似
cin << "Hello world!" << endl;
这样的项目吧?如何写带窗口的程序?并且学会在Windows写,就同时也要学会 在Linux下,UNIX下写?当然需要学会一套C++的跨平台的GUI库,才能说你会C++编程了。
- boost -- 也不多说了。不用boost,出门真不好意思说自己会C++。类似线程之类很实际功能,在这里有很好的支持。
- XML 解析 --- 到处都需要,可是和thread一样,没看到标准库有只言片语啊?
- 数据库 --- 商业程序几乎离不开数据库操作。