澎湃新闻
“17c.c++”本身并不是C++标准、正式版本或广为认可的项目名称。C++标准版本通常写作C++1💡7、C++20或C++23;源文件扩展名则常见为.c、.cc、.cpp和.cxx。“17c.c++”⭐更像是搜索词、文件名、站点标识或转写错误,不能仅凭这个字符串判断某个作者、组织或语言的身份。
C++自身也一直在吸收新的🌈编程思想。现代C++通过移动语义、智能指针、并发库、模块、概念和范围等特性改善表达能力与安全性。把C++描述成停留在早期指针操作阶段,会忽略现代标准的发展;把Rust描述成“更安全的C++”,同样会掩盖两种语言在类型系统、编译模型和工程习惯上的差异。
C语言为C++提供了底层数据表示、指针操作、函数调用模型和广泛的系统生态。C✨++又进一步发展出RAII、泛型编程和面向对象抽象,使资源管理和大型软件组织拥有更多工具。C++与C保持较强的源代码和生态关联,但两者并非完全兼容;某些C⭐代码需要经过调整,才能作为合格的C++代码编译。
Simula对C++的面向对象方向也有重要影响。类、对象、继承和虚函数等概念并非C语言原生能力,C++在吸收这些思想后,形成了兼顾过程式编程、面向对象编程和泛型编程的语言结构。因此,若问题关注“C++从谁那里继承了面向对象思想”,答案不能只写C语言;若问题关注“💡C++的系统编程根基来自谁👍”,答案则应优先指向C语言。
Rust与C++的继承关系并不成立。Rust不是C🌟++标准委员会推出的新版本,也不保证C++源代🔍码、模板或ABI可以直接迁移到Rust。Rust拥有独立的语法、包管理工具、类型系统和并发模型;C++则拥有更长的工业应用历史、更庞大的既有代码库以及较强的底层控制能力。
“17c.c++”缺少上下文时,无法对应到一个确定的技术实体。字符串中的“17”可能让人联想到C++17标准,“c”可能代表C语言、类别编💯号或文件名的一部分,而“.c++”又不像主流操作系统中常用的源文件后缀,因此把整段文字直接当作某个产品名称,容易产生误判。
Rust被称为C++的“精神传人”,主要是因为两者都面向系统软件、嵌入式开发⚡、基础设施和高性能服务,并且都希望在没有传统垃圾回收器的情况下提供较强的运行效率。Rust还把所有权、借用和生命周期检查放进编译💡阶段,试图减少悬空指针、数据竞争和部分内存泄漏风险。