学习C 从哪入手?
创始人
2024-06-22 06:20:58
0

很多人把学习C++语言的过程和学习VC++的过程一样,那就大错特错了,这样会给大家带来许多弯路的,研究很久的VC++后,反过来还是得回过头来学习C++语言,下面说一下学习C++感想。

在C#中虽然还没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库的掌握尤为重要。

刚开始的时候千万不要直扑VC中的各种向导和设计器。因为依赖开发环境生成的很多代码会把我们搞糊涂,也不利于我们学习C++语言本身。我的建议就是生成一个空的控制台工程,然后自己向里面添加文件。

  1.  //robindy/list.cpp  
  2.  
  3. #include  
  4. #include  
  5.  
  6. using namespace std;  
  7.  
  8. int main()  
  9. {  
  10. list coll;  
  11.  
  12. for(char c = \'a\'; c <= \'z\'; ++c)  
  13. {  
  14. coll.push_back(c);  
  15. }  
  16.  
  17. list::const_iterator pos;  
  18. for(pos = coll.begin(); pos != coll.end(); ++pos)  
  19. {  
  20. cout << *pos << \' \';  
  21. }  
  22. cout << endl;  
  23.  
  24. return 0;  

这段程序用到了标准模板库,在屏幕上打印字符a~z,其中main函数的标记式只有两种是被C++标准委员会接受的,只有以下两种写法是符合C++标准的,是可移植的。即:

  1. int main()  
  2. {  
  3. }  
  4. 和  
  5. int main(int argc, char* argv[])  
  6. {  

我不建议初学者一开始就从模板库入手,但是我建议应该逐渐地有意识地学习模板库。如我们应该熟悉cout和cin的用法(位于iostream),而减少使用老式的C函数库中printf和scanf等。

从控制台入手的好处就是避免我们理解VC中向导等工具生成的其他代码,整个程序的流程很清楚。新手学习VC的一大难点就是搞不清楚整个程序的流程(从那条语句开始执行,然后从那条语句退出。MFC做了太多封装,掩盖了事实的真相。

通过控制台我们可以很快地学习C++语言中的很多新特性。如类的封装、继承和多态等。通过这个时期的学习,要能够掌握三个东西:C++关键字、语法(重点是和面向对象有关的,以及模板)、学习C++感想(知道怎么使用即可,要彻底掌握需要很多时间和精力)。至于与界面有关的东东(MFC中很大一部分是与界面相关的类,所以我认为MFC很臃肿而无聊!回头看过以前用MFC写的程序,有一种“垃圾”的感觉。)

自己做个测试:写一个控制台程序,在其中体现出类的继承,函数重载,动态多态(通过虚函数实现),数据封装,C++标准库的运用。

如果你能够轻松搞定,恭喜你,你已经通过学习C++感想关了。不过C++实在是一个复杂的东东,其中有各种千奇百怪的语法现象,如果没有三、五年的功力,千万不要说自己懂C++

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...