thousand-trees-academy / TTA-proposal-docs

Creative Commons Attribution Share Alike 4.0 International
7 stars 4 forks source link

[ 内容 ] C 和 C++ 的联系与区别 #60

Open BillXWB opened 3 years ago

BillXWB commented 3 years ago

可能是因为一些 C++ 课的内容有些古老,主要内容和 C 几乎没什么区别,导致一些人产生了一些误解,例如:

感觉还是科普一下比较好。

comradez commented 3 years ago

这个好。 只学个C with class(甚至C with cin&cout)对认识C++没啥帮助

LaoshuBaby commented 3 years ago

如何快速引入modern C++ (还得考虑接受和学习难度的问题)

(挠头)

shinnku-nikaidou commented 3 years ago

可以,但我觉得有个问题是,主要是c++更新太快,c++23都已经在赶来的路上了,前脚你刚介绍完std::enable_if之类的type_traits里面的东西,后脚concept之类的又来了,所以这部分内容容易过时

LaoshuBaby commented 3 years ago

我觉得能支持到C++11就不错?C++17和C++20,新人能了解就行?能用到这些级别的特性的话,那应该也不算新人了,不属于我们辅导的目标了吧?

ayaka14732 commented 3 years ago

可以,但我觉得有个问题是,主要是c++更新太快,c++23都已经在赶来的路上了,前脚你刚介绍完std::enable_if之类的type_traits里面的东西,后脚concept之类的又来了,所以这部分内容容易过时

嗯,我觉得指一个方向,让初学者不要认为 C++ 就是 C with class 就可以了。至于 C++23 这种程度,应该有一个专门的教程介绍最新的 C++ 特性。如果专门的教程都没有写好,我们这本书也没有必要讲那么多 XD

LaoshuBaby commented 3 years ago

能介绍重载,能介绍Template,似乎已经比很多C with Class或者C with STL的玩家好多了吧(挠头

留一个文档专门介绍C++11以后的特性变迁好了

BillXWB commented 3 years ago

能介绍重载,能介绍Template,似乎已经比很多C with Class或者C with STL的玩家好多了吧(挠头 留一个文档专门介绍C++11以后的特性变迁好了

我觉得到这个程度就可以了。

另外,是不是应该强调一下 RAII?

LaoshuBaby commented 3 years ago

RAII

可以?这显然可以?(那么,C++ CLI的话……?)

BillXWB commented 3 years ago

C++ CLI

我对这个完全不了解:joy:

Akarinnnnn commented 3 years ago

C++/CLI什么垃圾东西,用过一次之后狗都不用

Akarinnnnn commented 3 years ago

M$特色就别拿出来说了

Akarinnnnn commented 3 years ago

能介绍重载,能介绍Template,似乎已经比很多C with Class或者C with STL的玩家好多了吧(挠头 留一个文档专门介绍C++11以后的特性变迁好了

复制构造、移动构造(C++11 +)、默认构造、虚拟析构安排一下

Akarinnnnn commented 3 years ago

我认为如果讲template必接concept,enable_if扫进历史的垃圾堆就行 因为concept设计目的就是用于模板类型参数制约,虽然fast_io又搞出一种邪道用法,但这不应该成为主流

Akarinnnnn commented 3 years ago

constexpr也可以提

ayaka14732 commented 3 years ago

这本书定位主要是「无关编程的问题」,讲太多关于 C++ 编程的细节不是这本书的本意吧

我认为可以适当提一下 C 和 C++ 的联系与区别,然后介绍一些学习 Modern C++ 的好的参考资料即可。我知道的比较好的资料有 Effective Modern C++ 和 cppreference.com

Akarinnnnn commented 3 years ago

这本书定位主要是「无关编程的问题」,讲太多关于 C++ 编程的细节不是这本书的本意吧

我认为可以适当提一下 C 和 C++ 的联系与区别,然后介绍一些学习 Modern C++ 的好的参考资料即可。我知道的比较好的资料有 Effective Modern C++ 和 cppreference.com

说的好 应该直截了当的告诉读者:现代C++和C不是一个东西 上文“狗都不用论”被抽了,我重申一遍:C++/CLI这个东西十分鸡肋,爱听不听,贴吧抽楼都没这狠