gpt4 book ai didi

c++ - 跨类的多个实例调用一次函数

转载 作者:行者123 更新时间:2023-11-30 02:20:26 25 4
gpt4 key购买 nike

我已经四处寻找了一段时间,似乎找不到这个问题的答案。
那么,如果我有一个类的多个实例,我如何才能从该类的所有实例中仅调用一次函数?
例如,如果我在名为 myClass 的类中有一个名为 myFunc() 的函数,并且该类的两个实例名为 class1 class2,然后
class1.myFunc() 应该返回 1,
class2.myFunc() 应该返回 0,并且
class1.myFunc() 应该返回 0。

我该怎么做?

class myClass{
public:
myClass(){}
int myFunc(){
if (myFuncHasBeenCalled){
return 0;
}
else{
return 1;
}
}
}

myClass class1;
myClass class2;
class1.myFunc(); //would output 1
class2.myFunc(); //would output 0
class1.myFunc(); //would output 0

最佳答案

你可以通过

  • 引入类变量,在类声明中使用static关键字
  • 在(单独的)代码文件中定义类变量,并进行初始化
  • 在函数内部检查,if 0 output 1 else 0
  • 之后增加(或设置为非零)
  • 小心使用同步机制,以防调用可能来自不同的上下文/线程/任务/进程(任何适用于您的环境的)

(如果您使用静态变量展示您的尝试并解释您遇到的问题,这可能会变得更详细。)

关于c++ - 跨类的多个实例调用一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49665124/

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