C++并没有鼓励使用值语义。适合值语义的用值语义,不适合的就不用。
如果没有GC,你很难设计得比C++好多少。
【 在 finlab (挨踢卢瑟) 的大作中提到: 】
: 标 题: C++鼓励使用值语义,我觉得有些过了。
: 发信站: 水木社区 (Sat Nov 6 13:07:46 2021), 站内
:
:
:
:
: 使用值语义,可以避免大量堆管理开销和程序员的内存管理负担,可以使复杂对象的内存布局更高效,但是也带来和很多问题。
:
: 值语义需要定义拷贝和赋值的行为,增加了编程工作量和引入bug的概率。
:
:
: 而大量的拷贝和赋值又带来额外开销,因此大量使用“引用”,避免拷贝发生
:
: 进一步又引入了右值印用和move语义,试图尽量用move取代copy。
:
: 另一方面,传统C++的虚拟多态机制需要通过指针来实现,而现代C++鼓励使用的值语义阻碍了多态的实现。
:
: 不得已,又大量的通过模板系统部分代替多态的功能,导致标准库中模板泛滥。
:
:
: C++极致追求性能,可以理解,但是为了性能把语言搞的对普通程序员越来越不友好,是不是得不偿失?
:
: 牺牲一些效率,实现一个基于虚拟多态的简洁优美的标准C++基础库,是不是更有市场?
:
:
: 哈哈,其实我想要的就是一个使用C++语法的delphi, 或者直接编译本地代码的C#,
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 123.112.70.*]
--
FROM 73.15.185.*