Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 日记 [2006年05月08日]C++的学习感想
【标  题】:日记 [2006年05月08日]C++的学习感想
【关键字】:2006,05,08,C++
【来  源】:http://www.cublog.cn/u/18718/showart.php?id=110022

日记 [2006年05月08日]C++的学习感想

Your Ad Here
多人把学习C++语言当成学习VC了,我曾经就走过这样的弯路。当学了很长时间的VC后还是得回过头来学习C++语言本身。

  那么学习C++从何处入手呢?

  C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类),另外就是模板技术(模板编程或者叫泛型编程是进来非常流行的技术,在C#中虽然还没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库的掌握尤为重要。

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

  如下就是一个简单的控制台程序:

//robindy/list.cpp

#include
#include

using namespace std;

int main()
{
list coll;

for(char c = 'a'; c <= 'z'; ++c)
{
coll.push_back(c);
}

list::const_iterator pos;
for(pos = coll.begin(); pos != coll.end(); ++pos)
{
cout << *pos << ' ';
}
cout << endl;

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++标准的,是可移植的。即:

int main()
{
}

int main(int argc, char* argv[])
{
}

  C++在main()的末尾定义了一个隐式的return 0; 但是在VC中必须显式的写出return语句。

  在BCB中可以不写return而编译通过。

  这段程序中用到了STL中的容器:链表。先是向链表中插入26个字母,然后从遍历链表,输出字符。

  我不建议初学者一开始就从模板库入手,但是我建议应该逐渐地有意识地学习模板库。如我们应该熟悉cout和cin的用法(位于iostream),而减少使用老式的C函数库中printf和scanf等。
日记 [2006年05月08日] C 编程最佳实践:【上一篇】
SSD6::Memory Management My_Malloc and My_Free:【下一篇】
【相关文章】
  • 日记 [2006年05月08日] C 编程最佳实践
  • VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
  • 让程序脱离BC++ Builder 独立运行的办法
  • 标准c/c++
  • 日记 [2006年05月10日]
  • 日记 [2006年05月08日] Apache的httpd.conf文件常用指令解释
  • 20060510 HA验证并同步错误代码。
  • 日记 [2006年05月10日] Linux中设置ip
  • 火鸟字幕合并器V0.5 Build2006.5.9正式发布,下载地址不变
  • 20060510个人日志(vb程序打包安装问题)
  • 【随机文章】
  • [RSS]转载一篇介绍RSS知识非常翔实的文章,让我受益匪浅。
  • 插件系统[7]·隐喻的力量
  • 数据结构C语言实现系列[6]——堆
  • 开源的Openlaszlo做的图片浏览器:applejuice: simple photo gallery viewer
  • Flash 引导线的使用
  • 破解flash32(抓图软件)实站录
  • 顺序批量修改文件名
  • 使用分治法解决棋盘覆盖问题
  • select(), FD_SET(), FD_CLR(), FD_ISSET(), FD_Z
  • lastlog
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.