惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
博客园 - 叶小钗
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
美团技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
H
Heimdal Security Blog
有赞技术团队
有赞技术团队
The Cloudflare Blog
S
Secure Thoughts
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
The Blog of Author Tim Ferriss
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
小众软件
小众软件
C
Cybersecurity and Infrastructure Security Agency CISA
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - Franky
T
Tenable Blog
The Last Watchdog
The Last Watchdog
腾讯CDC
量子位
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
雷峰网
雷峰网
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyberwarzone
Cyberwarzone
S
Securelist
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
InfoQ
Spread Privacy
Spread Privacy
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - yankchina

[C++]VisualC++2010Express英文版试用手记 [Soft]物联网时代中的编程语言 - yankchina - 博客园 [Web]Web在线地图API试用笔记 [Python]命令行解析器Argparse的试用手册 [PHP]PHP技术基础 [Blog]将syntaxhighlight与LatexMathML本地化 [Soft]软件技术的两个趋势 [Soft]RAD的代价 [Python]快速解析数据库视图XML配置获取数据库字段说明 用VBA批量输出Outlook通讯录内容 - yankchina - 博客园 试用交互原型设计软件Axure RP Pro 4 云计算零接触 Camtasia Studio 7 试用笔记 文档整理经验谈 命令行调用Lame批量压缩MP3 [C++]千万不要碰VisualStudio - yankchina - 博客园 CSS 使用经验备忘 用Compare It! 4 比较Word Wiki 比较
[C++]C++学习的一些建议
yankchina · 2010-09-01 · via 博客园 - yankchina

r_studycpp 收到学弟们的一些C++学习笔记,很有感触。C++语言是一门很宏大奇妙的计算机语言,回顾自己学习与研究C++的经历,很漫长、很艰辛也很有乐趣。总结这些年的经历,对于C++的学习有如下建议:

  1. 遵循C++代码编程规范。经过近三十年的发展,C++已经有了一整套的代码编程规范,如private variable的命名方法,类的命名方法,代码编写格式等。网络上有类似的文章下载,图书馆也有《C++编程规范(中文版)》(ISBN:7-115-14205-X)可以参考。要尽可能地在编程训练中加强编程规范的练习,这样进入工程团队中方能更好地与别人进行代码沟通。
  2. 采用Doxygen格式进行代码注释。这也是代码规范的一个重要方面。在编写注释时,也要采用标准格式,这样可以通过Doxygen来自动生成代码文档。
  3. 要将类封装每个样例。许多参考书中的样例很少采用类来进行封装,而仍是采用函数。这并不是C++所提倡的。应该将每个样例都写成类的形式,由main程序来进行类实例创建后调用类操作完成。对于小样例来说,这会增加不少的编程工作,但只有这样才能更好地了解类的调用机制,与参数传递方式。“类的组合与函数的组合是完全不同的”,因此只有不断地用类,而非函数,才能真正提高自己C++的功力,更确切地说是提高C++在面向对象编程方面的功力。
  4. 要熟悉标准C++技巧。许多参考书的样例代码中,其实存在三种不同的语言,大部分是C,一部分是托管C++,而只有极少数的是标准C++。例如你在读取文件时采用了纯C的方式,而不是标准C++的方式。标准C++是通过fstream来进行文件访问的。这说明你所参考的书籍作者并没有能厘清上述语言的差异。要真正掌握C++,并能编写出移植性高的程序,只有花力气在标准C++的学习上。《C++ Primer》与《Thinking in C++》是最好的参考。
  5. 要学习单元测试技术。一般初学者往往采用注释的方式将测试通过的代码注释掉。这样的方式最简单,但最不能在多人合作的项目中使用,因此是一个很不好的编程习惯。要学习利用CppUnit或者MiniCppUnit等库来进行单元测试,这样既不用注释代码,而且能自动化单元测试,是最符合软件工程的编程习惯,一定要花些时间来学习。
  6. 要通过实例学习泛型技术。根据我的经验,容器与泛型是C++中相当难于掌握的内容,如果没有很好的样例,只停留在理论说明上,是很难深刻领会的。因此要对泛型技术有所了解,应该从开源程序中来进行学习。虽然C++中最好的泛型库是Boost C++ Libraries,但我并不建议从Boost入门。我更推荐TCLAP库。TCLAP库是用来解析命令行参数的,就是将 int main( int argc,char** argv)中的argv参数进行解析,获得一系列的参数值。这个库很有用,且其代码都是采用泛型技术编写的,很精巧,适合阅读!先参考examples 目录中的样例,编译后学习 TCLAP 的使用,然后再阅读其代码。只有这样方能真正理解为什么要用泛型,泛型思想与面向对象思想之间存在哪些本质性的差异。

希望上述建议能对C++学习有所帮助。如有什么学习心得或者困难,请Gmail给我。我很乐意与你们一起研讨C++技术。