gpt4 book ai didi

c++ - C++ 中静态类变量的静态或非静态 getter/setter

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:23 24 4
gpt4 key购买 nike

假设我有以下类(class):

class A {
private:
static double X;
};

double A::X = 0.0;

变量 A::X 实际上应该是静态的,因为 A 的所有实例必须在我所关注的上下文中共享相同的值A::X

现在,我的问题是是否将 A::X 的 getter 和 setter 函数设为静态。它们将被这样定义:

void A::setValue(const double x) {
#pragma omp critical
{
if(x<0.0||x>1.0)
// custom macro call to raise exception

X = x;
}
}

double A::getValue() {
#pragma omp critical
{
return X;
}
}

在我看来,无论我将这些 getter 和 setter 函数作为静态成员函数还是作为非静态成员函数添加到 A 中,都没有任何实际区别。这样对吗?

在此示例中,或更一般地,可能有什么原因更喜欢将此类 getter 和 setter 函数设为类的静态或非静态成员,而类的静态成员由它们控制访问?

最佳答案

  1. 如果没有声明对象,你可以调用静态方法
  2. 您的代码更具可读性:如果您有一个静态方法 getA,您就知道 A 是静态的

关于c++ - C++ 中静态类变量的静态或非静态 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com