V2EX  ›  英汉词典

Rule of Five

释义 Definition

“Rule of Five(五法则)”是 C++ 中关于资源管理类的经验法则:如果一个类自定义了以下五个特殊成员函数中的任何一个,那么通常也应该显式地定义(或禁用)其余相关函数,以避免浅拷贝、重复释放、资源泄漏等问题。五个函数通常指:析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符。该说法也常被用来概括“需要正确处理拷贝与移动语义”。

发音 Pronunciation (IPA)

/ˌruːl əv ˈfaɪv/

例句 Examples

When you manage memory manually, the rule of five helps prevent bugs.
当你手动管理内存时,“五法则”有助于避免出错。

Because the class owns a file handle, it defines a destructor and move operations, following the rule of five to ensure safe copying and moving.
因为这个类拥有文件句柄资源,它定义了析构与移动操作,遵循“五法则”以确保拷贝与移动都安全。

词源 Etymology

“Rule of Five”源于 C++11 引入移动语义(move semantics)之后的实践总结。早期有“Rule of Three(三法则)”,强调若自定义析构、拷贝构造、拷贝赋值,通常三者要一起考虑;C++11 增加了移动构造与移动赋值后,经验法则扩展为“五法则”。这里的“rule”是“经验规则/最佳实践”的意思,并非语言强制语法。

相关词 Related Words

文学与著名作品 Literary & Notable Works

  • C++ Core Guidelines(Bjarne Stroustrup、Herb Sutter 等):在资源管理与特殊成员函数相关条目中讨论拷贝/移动与“rule of five/zero”等思想。
  • *Effective Modern C++*(Scott Meyers):讲解 C++11/14 的移动语义、资源管理与类的特殊成员函数实践时常涉及该原则。
  • The C++ Programming Language(Bjarne Stroustrup):在类设计、资源管理与拷贝控制相关章节中提供背景与原则(常与“三/五法则”的实践联系阅读)。
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1903 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 11:48 · PVG 19:48 · LAX 03:48 · JFK 06:48
♥ Do have faith in what you're doing.