为什么使用C++

http://tech.ddvip.com   2007年09月13日    社区交流

内容摘要:本文给出了我们需要使用C++的原因和理由,您觉得这些理由充分吗?文中针对C++的贬低和相应对C语言的抬高给出的原因,您觉得是正如作者所说这样的吗?

//C代码
DIR* dir = opendir(".");
if(NULL != dir)
{
struct dirent* de;
for(; NULL != (de = readdir(dir)); )
{
struct stat st;
if( 0 == stat(de->d_name, &st) &&
S_IFREG == (st.st_mode & S_IFMT))
{
remove(de->d_name);
}
}
closedir(dir);
}
//C++代码
readdir_sequence entries(".", readdir_sequence::files);
std::for_each(entries.begin(), entries.end(), ::remove);
And it’s even simpler in C++09:
// C++09代码
std::for_each(readdir_sequence(".", readdir_sequence::files), ::remove);

  我想,这能很清楚地说明,为什么即使人们不需要使用类和模板的时候还是应该使用C++——你会发现便捷的C++类库是多么有用。类似地,如果一个高效的容器(或者一个巧妙的指针)可以使你摆脱所有手工操作内存的麻烦工作,那么,还有什么理由要使用那些原始的malloc/free?如果一个好的string类(我不是在说std::string;人人都知道这不是C++做的最好的)或者regex类可以使你摆脱所有你看都不想看的混乱的字符串处理代码,那么还有什么理由要选择手动做这件事情呢?如果一个“transform”(或‘for_each’)语句可以如此简单明了地一行就完成你的工作(当然,我知道C++做这件事需要lambda函数的支持),那么,还有什么理由要手动写for-loops循环?如果高定制的函数真的能实现你想要的功能,那么,还有什么理由使用笨拙的工作区来完成同样的事务呢?

  KISS并不意味着“粗糙”;KISS的意思是为你的工作选择最适合的工具,“最适合”意味着你所使用的工具能尽可能直接(和简洁)的帮助你表达你的想法。只要它不影响代码的可读性和易懂性。

来源:51CTO.com    作者:刘未鹏    责编:豆豆技术应用

正在加载评论...