全面讲析C++语言

开发 后端
正如大家所了解,C#的语法与C++语言非常相似,实现从C++向C#的转变,其困难不在于语言本身,而在于熟悉,下面就一起进行学习了解。

C++语言对C语言进行了改革性的改进,分为两个方面,一方面是面向对象,另一个方面就是模板技术,在下文中将对C++语言的种种特性进行全面的仔细研究,欢迎大家一起学习交流。

但是相信在将来也一定会加入这一功能),模板是C++中比较复杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库的掌握尤为重要。刚开始的时候千万不要直扑VC中的各种向导和设计器。

因为依赖开发环境生成的很多代码会把我们搞糊涂,也不利于我们学习C++语言本身。我的建议就是生成一个空的控制台工程,然后自己向里面添加文件。如下就是一个简单的控制台程序:

  1. //robindy/list.cpp  
  2.  
  3. #include <iostream> 
  4. #include <list> 
  5.  
  6. using namespace std;  
  7.  
  8. int main()  
  9. {  
  10. list<char> 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;  

对using namespace std;的解释:所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。例如std::ostream而不是ostream.完整语句如下:std::cout << std::hex << 3.4 << std::endl;2、使用using关键字。

using std::cout;using std::endl;以上程序可以写成cout << std::hex << 3.4 << endl;3、最方便的就是使用using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:cout << hex << 3.4 << endl;

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

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

C++在main()的末尾定义了一个隐式的return 0; 但是在VC中必须显式的写出return语句。在BCB中可以不写return而编译通过。这段程序中用到了STL中的容器:链表。先是向链表中插入26个字母,然后从遍历链表,输出字符。我不建议初学者一开始就从模板库入手。

但是我建议应该逐渐地有意识地学习模板库。如我们应该熟悉cout和cin的用法(位于iostream),而减少使用老式的C函数库中printf和sc anf等。从控制台入手的好处就是避免我们理解VC中向导等工具生成的其他代码。#t#

整个程序的流程很清楚。新手学习VC的一大难点就是搞不清楚整个程序的流程(从那条语句开始执行,然后从那条语句退出。MFC做了太多封装,掩盖了事实的真相。。。。

通过控制台我们可以很快地学习C++语言中的很多新特性。如类的封装、继承和多态等。通过这个时期的学习,要能够掌握三个东西: C++关键字、语法(重点是和面向对象有关的,以及模板)、C++标准程序库(知道怎么使用即可,要彻底掌握需要很多时间和精力)。

至于与界面有关的东东(MFC中很大一部分是与界面相关的类,所以我认为MFC很臃肿而无聊!回头看过以前用MFC写的程序,有一种“垃圾”的感觉。)自己做个测试:写一个控制台程序,在其中体现出类的继承,函数重载,动态多态(通过虚函数实现),数据封装,C++标准库的运用。

责任编辑:chenqingxiang 来源: 51CTO.com
相关推荐

2010-01-20 11:02:42

C++开发环境

2009-12-09 09:49:56

VS .NET 200

2010-01-20 14:25:56

函数调用

2010-02-04 16:39:26

C++析构函数

2010-01-18 15:53:27

C++析构函数

2010-01-25 10:10:42

C++函数参数

2010-01-15 17:38:37

C++语言

2016-01-28 14:41:06

CC++编码

2011-07-15 01:29:39

C++析构函数

2009-01-08 09:26:06

C语言指针类型

2010-01-13 17:04:36

C++语言

2010-01-14 10:23:08

C++语言

2010-01-26 10:27:43

C++语言

2010-02-05 13:35:19

C++虚析构函数

2011-06-15 09:47:14

C++

2010-01-14 10:34:02

C++语言

2010-02-22 11:02:55

Python功能

2010-02-04 16:43:18

Android 配置问

2010-01-15 14:46:20

C++语言

2024-12-11 16:00:00

C++函数编译器
点赞
收藏

51CTO技术栈公众号