关于C++标准制定主体及语言约定(如>>提取运算符)可修改性的问询
C++标准与语言约定相关问题解答
1. 谁负责制定C++这类编程语言的标准?
C的标准是由ISO/IEC JTC1 SC22 WG21(圈内通常简称C标准委员会)负责制定和维护的。这个委员会的成员来自全球各地,涵盖科技公司(比如微软、谷歌、苹果)、编译器厂商(像GCC、Clang的核心团队)、学术机构的研究者,还有资深的C开发者。他们会定期召开线下或线上会议,讨论语言的新增特性、现有特性的修正,以及标准的迭代更新——我们熟悉的C11、C17、C20这些版本,都是这个群体共同商议打磨后的成果。
2. 开发者是否可以修改C++这类编程语言中的约定(例如提取运算符>>),还是此类约定受到限制?
这个得分两种情况来看:
- 对于内置类型的默认约定(比如
int、float这些基础类型的>>提取行为),是被C++标准严格锁定的,开发者没办法直接修改它们的固有逻辑——毕竟要是人人都改内置行为,代码的可移植性和可读性就彻底乱套了。 - 但对于自定义类型,你完全可以通过运算符重载来重新定义
>>这类运算符的行为,让它适配你的业务需求。举个简单的例子:
#include <iostream> #include <string> class Person { public: std::string name; int age; }; // 重载提取运算符>>,让它能直接从输入流读取Person对象 std::istream& operator>>(std::istream& is, Person& p) { is >> p.name >> p.age; return is; } int main() { Person someone; std::cin >> someone; // 现在可以直接用>>读取Person的姓名和年龄了 return 0; }
简单来说,标准框定了基础规则以保证语言的一致性,但给自定义类型留足了灵活调整的空间,兼顾了规范和个性化需求。
内容的提问来源于stack exchange,提问作者Xaibu Gemi
相关产品推荐
相关产品推荐

