V2EX  ›  英汉词典

Rule of Zero

释义 Definition

“零法则”:C++ 资源管理经验法则之一——如果类不直接管理资源(如裸指针、文件句柄、互斥量等),就不要自己编写析构函数、拷贝/移动构造函数、拷贝/移动赋值运算符;让编译器生成的默认版本工作即可。通常通过使用 RAII 类型(如 std::stringstd::vectorstd::unique_ptr)来实现。

发音 Pronunciation (IPA)

/ˌruːl əv ˈzɪəroʊ/ (AmE), /ˌruːl əv ˈzɪərəʊ/ (BrE)

例句 Examples

We follow the rule of zero in this class.
我们在这个类中遵循“零法则”。

By applying the rule of zero and storing resources in standard library types, the code avoids manual memory management and reduces subtle copy/move bugs.
通过应用“零法则”,并把资源交给标准库类型管理,这段代码避免了手动内存管理,也减少了隐蔽的拷贝/移动错误。

词源 Etymology

“Rule of Zero”出自 C++ 社区对“Rule of Three(拷贝三法则)”与“Rule of Five(移动五法则)”的进一步总结:与其小心翼翼地手写这些特殊成员函数,不如把资源管理交给成熟的 RAII 成员对象,从而让“特殊成员函数的数量变成零”。这里的“zero”强调的是“自己不需要写”,而不是“类没有任何函数”。

相关词 Related Words

文学与著名作品 Notable Works

  • C++ Core Guidelines(由 Bjarne Stroustrup 与 Herb Sutter 等主导的核心指南,讨论资源管理与“零法则”相关思想)
  • *Effective Modern C++*(Scott Meyers,涉及现代 C++ 中用类型与惯用法减少手写特殊成员函数的实践)
  • C++ Coding Standards(Herb Sutter、Andrei Alexandrescu,讨论资源管理与类设计的经验法则,常与“零法则”一起被引用)
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   713 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
♥ Do have faith in what you're doing.