Questions tagged «rule-of-three»

6
5的规则-是否使用?
的3中的规则(5规则状态在新的C ++标准): 如果您需要自己显式声明析构函数,复制构造函数或复制赋值运算符,则可能需要显式声明这三个函数。 但是,另一方面,马丁的“ 清理代码 ”建议删除所有空的构造函数和析构函数(第293页,G12:Clutter): 没有实现的默认构造函数有什么用?它要做的只是用毫无意义的工件使代码混乱。 那么,如何处理这两种相反的意见呢?是否应该真正实现空的构造函数/析构函数? 下一个示例准确地说明了我的意思: #include <iostream> #include <memory> struct A { A( const int value ) : v( new int( value ) ) {} ~A(){} A( const A & other ) : v( new int( *other.v ) ) {} A& operator=( const A & other …

1
是否有理由等到第三规则中的第三次?
我刚刚在维基百科上看到了文章“ 三法则 ” 第三规则是代码重构的经验法则,用于确定何时应将新代码替换为新过程。它指出该代码只能复制一次,但是当同一代码使用3次时,应将其提取到新过程中。该规则由Martin Fowler在“重构”中引入,并归因于Don Roberts。 我知道这只是一个经验法则,但是为什么建议仅在第二次重复之后才进行重构?编写第一个副本时,重构有什么不利之处吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.