Chinaunix首页 | 论坛 | 博客
  • 博客访问: 381971
  • 博文数量: 49
  • 博客积分: 3380
  • 博客等级: 中校
  • 技术积分: 610
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 19:56
文章分类

全部博文(49)

文章存档

2011年(18)

2010年(1)

2009年(30)

我的朋友

分类: LINUX

2009-03-16 19:58:42

对于printf和scanf, fopen和fclose十分习惯了之后,怎么避免自己写出C风格的C++程序呢?
问题不是这样的:
用cout和cin代替printf和scanf
用ifstream和ofstream代替fopen和fclose
用new和delete代替malloc和free
用string代替char *
...
事实上,所谓要代替的不是还在Linux中广泛存在吗?问题是C++的程序到底是什么样的呢?
面向对象和泛型编程,我认为是C++的主要特征。
例如我们可能在C里会写出动态分配内存的struct, 然后每次要free一个struct的时候,就先free内部的内存;但是C++不是这样的,C++会定义析构函数,在对象失去生命的时候,自动释放内存。这样,显然更加方便了。
再如我们会对这个struct编写相应的函数来执行一些操作,C++会抽象的把它们封装为成员函数。
还有其他的面向对象的机制。
而泛型编程,就是使用template机制。但是更主要的是使用STL来支持所要使用的数据结构和算法,将自己的开发建立在标准的基础上。
从这两个观点出发,才能写出是C++的程序。


-----------------------------------------
转自:http://blog.chinaunix.net/u3/93494/showart_1859664.html
阅读(3240) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~