CppCoreGuidelines C.12 类的成员数据不可为 const 或引用
06 August 2022
C.12: Don’t make data members const
or references in a copyable or movable type
理由
这样做没啥用。导致该类型很难使用:不能复制,或因为种种原因,部分不能复制。
例子
class bad { const int i; // bad string& s; // bad // ... };
const
和&
的成员数据导致这个类只能部分复制,即可以复制构造,不能复制赋值。
注意
如果你需要让成员指向某些东西,不要用引用,可以用指针(原始指针;智能指针;如果不能为空,可以是gsl::not_null
)。
强化
标记出有 const
、 &
或&&
修饰的成员数据。