-1

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

class A {
  const int size_;
public:
  A(int size) : size_(size) {}
};
  1. 尾随下划线是“私人”还是“阶级”的标志?
  2. const 字段应该是“kSize”还是“size_”?
  3. 如果移到公开,应该是“大小”吗?
4

1 回答 1

1

在您的示例中:

class A {
    const int size_;

出于样式指南的目的,此成员变量不是“常量”。它的值在构造后不能更改,但每个实例都不同。类中的“常量”是constexprorstatic constenum。就目前而言,它不是一个常数,因此没有k前缀。

要单独回答您的具体问题:

  1. 尾随的下划线告诉您它是一个类成员变量。
  2. size_因为就样式指南而言,它不是“常数”。
  3. 公开它会违反风格指南,所以这并没有真正的答案。

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

于 2021-05-23T01:27:31.943 回答