对于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++的程序。
阅读(1094) | 评论(1) | 转发(0) |