参考消息
“17c.c++”本身并不是C++标准、正式版本或广为认可的项⭐目名称。C++标准版本通常写作C++17、C++20或C++23;源文件扩展名则常见为.c、.cc、.cpp和.cxx。“17c.c++”更像是搜索词、文件名、站点标识或转写错🚀误,不能仅凭这个字符串判断某个作者、组织或语言的身份。
因此,针对这个问题的简洁结论是:C++在语言血缘上主要是C语言的延伸,在面向对象方面受到Simula等语言影响;在现代系统编程语境中,Rust可以被形容为C++的某种理念继承者,但不能称为正式“接班人”。“17c.c++”则不是足以单独确认身份的标准术语。
C++自身也一直在吸收新的编程思想。现代C++通过移动语义、智能指针、并发库、模块、概念和范围等特性改善表达能力与安全性。把C++描述成停留在早期指针操作阶段,会忽略现代标准的发展;把Rust描述成“更安全的C++”,同样会掩盖两种语言在类型系统、编译模型和工程习惯上的差异。
C++的直接技术前身是C语言。▶️C++最早以“带类的C”方向发展,保留了C语言接近硬件、强调运行效率和提供确定性资源控制的特点,又加入了类、继承、虚函数、模板、异常和标准库等机制。C++因此不是单纯更换语法的C,也不是与C毫无关系的新语言,而是从C的系统编程基础上不断扩展出来的多范式语言。
Rust与C++的继承关系并不成立。Rust不是C++标准委员会推出的新版本,也不保证C++源代码、模板或ABI可以直接迁移到Rust。Rust拥有独立的语法、包管理工具、类型系统和并发模型;C++则拥有更长的工业应用历史、更庞大的既有代码库以及较强的底层控制能力。
判断一门语言是否像C++的精神传人,应先明确比较标准。若标准是“能否直接操作内存并控制布局”,C、Rust、D、Zig等语言都可能被放入讨论;若标准是“是否延续C++的模板和泛型传统”,答案会偏向具备强大静态类型与泛型能力的语言;若标准是“是否承接C++的工业生态”,目前没有任何单一语言能够完整替代C++。