根据 google c++ 风格指南,常量 class 成员字段的正确大小写是什么?

what is the proper case of constant class member fields according to the google c++ style guide?

所以...我认为这留下了一点解释空间,我想知道是否有人知道标准的精神是什么...

class A {
  const int size_;
public:
  A(int size) : size_(size) {}
};
  1. 末尾的下划线是“私有”的标志还是“class”的标志?
  2. 常量字段应该是“kSize”还是“size_”?
  3. 如果移动为public,应该是“size”吗?

在你的例子中:

class A {
    const int size_;

对于风格指南而言,该成员变量不是“常量”。它的值在构造后不能更改,但每个实例都不同。 class 中的“常量”将是 constexprstatic constenum。就目前而言,它不是常量,因此没有 k 前缀。

单独回答您的具体问题:

  1. 结尾的下划线告诉您它是一个 class 成员变量。
  2. size_ 因为它不是样式指南中的“常量”。
  3. 使其成为 public 会违反风格指南,因此这并没有真正的答案。

最后,请注意 const 成员变量会抑制编译器生成的赋值运算符,这是您很少见到它们的原因之一。