关于c++ 学习

来源:互联网 发布:广告语录音制作软件 编辑:程序博客网 时间:2024/05/17 01:14
书单
http://lucida.me/blog/developer-reading-list/


c++ primer


c++ primer 上的代码很多都是最佳实践,但是你C++的水准不是由 primer 这本书的质量所决定,而是由你所做过的项目决定的。c++需要不断的练习@vczh


作者:Acjx
链接:https://www.zhihu.com/question/27359048/answer/36311830
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


作者:匿名用户
链接:https://www.zhihu.com/question/32087709/answer/55497335
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。




作者:pezy
链接:https://www.zhihu.com/question/29112393/answer/43461605
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


请问学习完是什么状态,而 C++ Primer 是哪一版课后习题全都自己做过了?

如果你学习完,指的是把书看完了一遍,那容易忘是必然的,又不是读唐诗宋词,谁能不忘?再说,把自己当活字典有何用?

如果是第四版,我建议你再去看第五版,了解 C++ 11 的语法,基于 C++ 11 标准进行练手,在当前环境下,意义要更大一些。

课后习题实际隐藏着很多小项目。譬如:

  • 第七章引入了两个类:Screen 和 Window_mgr,这实际是一个写字板程序的雏形,有没有想过继续完善下?结合 GUI 框架做出一个小玩意来?
  • 从第十二章到第十三章,逐步引入以下类:StrBlob -> StrVec -> String,这实际是在指导你,从底层实现 STL 基础模板?有没有想过将 String 类完善一下?譬如如何实现 c_str() 的功能?你的 String 效率与 STL 有何区别?能否超越?vector 呢?(这个很难超越)set 呢?(这个有可能)
  • 当然还有诸如 Folder 和 Message 类,实际是一个邮件管理系统的雏形,这样的例子不胜枚举。
所以,如果你真的认真做了习题,或是深入思考过这些题目,我觉得应该是不愁练手的。

而你表现的如此急切,倒是有点缘木求鱼的感觉。

==============干货分割线==================

好的C++开源项目不胜枚举,如:
  • facebook/folly · GitHub
  • TTimo/doom3.gpl · GitHub
  • github.com/EpicGames/Un
  • v8/v8 · GitHub
  • qtproject/qtbase · GitHub
  • ideawu/ssdb · GitHub
  • zeromq/libzmq · GitHub
  • miloyip/rapidjson · GitHub
都很值得去研究学习,但你是否能够一口去吃这些胖子,深表怀疑。大多数人,应该是头晕眼花,不明所以的。

自己想做点小项目练手,我也可以提供一些思路:
  • 高精度计时器:参考 QueryPerformanceCounter function (Windows)
  • STL 容器类:上面提到了。
  • 自己实现智能指针:其实还是习题的范围。
  • 实现类似 Qt 底层的信号槽
  • 实现一个 mini GUI
  • 实现一个类似 alleg.sourceforge.net/ 或 SDL 这样的游戏引擎,并做一个小游戏。
  • 实现一个简易的序列化框架,想想如何将对象存取于磁盘上。
  • 有人抱怨 c/c++有什么非常好用的字符处理库吗? ,你来实现一个 std::string 的工具库
  • 将上面这些东西,都封装成 dll/so/lib 的形式,供自己或更多人日后使用。

经历以上过程的洗礼,C++ 能忘就忘了吧,没关系~

0 0
原创粉丝点击