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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - yankchina

[C++]VisualC++2010Express英文版试用手记 [Soft]物联网时代中的编程语言 - yankchina - 博客园 [Web]Web在线地图API试用笔记 - yankchina [Python]命令行解析器Argparse的试用手册 [PHP]PHP技术基础 [Blog]将syntaxhighlight与LatexMathML本地化 [Soft]软件技术的两个趋势 [Soft]RAD的代价 - yankchina [Python]快速解析数据库视图XML配置获取数据库字段说明 用VBA批量输出Outlook通讯录内容 - yankchina - 博客园 试用交互原型设计软件Axure RP Pro 4 云计算零接触 Camtasia Studio 7 试用笔记 - yankchina 文档整理经验谈 命令行调用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++技术。