As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。
已关闭8年。
6-7年前,当我第一次学习C++时,我基本上学到的是“带类的C”。
今天,在我到处可见的地方,我看到了RAII和SFINAE,STL和Boost,以及现代C++。即使是刚开始使用该语言的人,似乎也几乎从第一天就开始学习这些概念。
我的问题是,这仅仅是因为我只看到“最佳”问题,即在SO以及倾向于吸引初学者的其他编程网站(gamedev.net)上出现的问题,或者这实际上代表了整个C++社区?
现代C++真的成为默认语言吗?与其成为专家们写的花哨的东西,不如成为“C++的方式”?
还是我只是无法看到成千上万的人仍然在学习“带类的C”并编写自己的动态数组而不是使用
我想相信的话,如果整个C++社区在短短几年内发展如此之大,这似乎是不可思议的。
您的经历和印象如何?
(免责声明:不熟悉C++的人可能会误以为标题是询问C++与其他语言相比是否正在流行。这不是我的问题。“现代C++”是C++中方言或编程风格的通用名称,以“Modern C++ Design: Generic Programming and Design Patterns Applied“,而我对此和”旧C++“完全不感兴趣。因此,无需告诉我C++的时间已经过去了,我们都应该使用Python;))
已关闭8年。
6-7年前,当我第一次学习C++时,我基本上学到的是“带类的C”。
std::vector
绝对是一个高级主题,如果您真的想学习的话,可以学习一下。当然,没有人告诉我可以利用析构函数来帮助管理内存。今天,在我到处可见的地方,我看到了RAII和SFINAE,STL和Boost,以及现代C++。即使是刚开始使用该语言的人,似乎也几乎从第一天就开始学习这些概念。
我的问题是,这仅仅是因为我只看到“最佳”问题,即在SO以及倾向于吸引初学者的其他编程网站(gamedev.net)上出现的问题,或者这实际上代表了整个C++社区?
现代C++真的成为默认语言吗?与其成为专家们写的花哨的东西,不如成为“C++的方式”?
还是我只是无法看到成千上万的人仍然在学习“带类的C”并编写自己的动态数组而不是使用
std::vector
,并且通过从顶层代码中手动调用new/delete进行内存管理?我想相信的话,如果整个C++社区在短短几年内发展如此之大,这似乎是不可思议的。
您的经历和印象如何?
(免责声明:不熟悉C++的人可能会误以为标题是询问C++与其他语言相比是否正在流行。这不是我的问题。“现代C++”是C++中方言或编程风格的通用名称,以“Modern C++ Design: Generic Programming and Design Patterns Applied“,而我对此和”旧C++“完全不感兴趣。因此,无需告诉我C++的时间已经过去了,我们都应该使用Python;))
最佳答案
这就是我认为事情发展的方式。
第一代C++程序员是C程序员,实际上他们将C++用作带有类的C。另外,STL还没有到位,因此C++本质上就是这样。
当STL出现时,它具有先进性,但是大多数人写书,汇总类(class)和讲课都首先学习C,然后学习了额外的C++知识,因此第二代从此角度学习了。另一个答案指出,如果您习惯于定期编写for循环,则更改为使用std::for_each
并不会给您带来多少好处,除了让您以“现代”方式进行操作时感觉模糊。
现在,我们已经有使用整个C++的讲师和书籍作者,并且从这种角度获得了指导,例如Koenig&Moo的Accelerated C++和Stroustrup的新教科书。因此,我们先学习char*
,然后再学习std::strings
。
关于“传统”方法的替换需要多长时间,这是一个有趣的教训,特别是当它们具有有效性的记录时。
关于c++ - 现代C++越来越流行吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/536439/
10-11 17:55