c++ - 如何在 C++ 中仅实例化一个变量一次?

标签 c++ static

在 Java 中,静态变量只被实例化一次并且表现得像全局变量。

在效率和速度方面,有没有办法用C++来实现? 由于静态,在 C++ 中, block 不存在。

如果有一个像 Foo = 17 这样的常量,并且我正在创建该类的多个实例,我该如何防止该常量被多次实例化?

同样的语法是否也适用于结构体?

最佳答案

它的工作原理是一样的。您可能有一个函数,您希望跟踪该函数在整个程序生命周期中被调用的次数,这很简单……

int foo()
{
   static int times = 0;
   ...
   return times;
}

虽然毫无意义,但它确实符合您的描述。您可以在类里面做同样的事情。

class myClass 
{
   public:
   static int many;
   ...
   int getMany() { return many; }
};

这里的函数总是返回存在的实例数。

关于c++ - 如何在 C++ 中仅实例化一个变量一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670085/

相关文章:

java - 静态方法与否?全局变量?

c++ - 使用静态变量的递归函数

javascript - REST API 与直接访问代码

C++ 重载与有符号和无符号 int 不同

java - 静态方法文件路径

c++ - 有人有在 iOS 下运行的 OpenGL ES 2.0 Qt 5 示例吗?

c++如何使用另一个ctor的ctor?

android - 静态变量在两个 Activity 之间不起作用

c++ - 标量类型和未定义行为的析构函数调用

c++ - C 中按 "a A b B c C"顺序对字符串数组进行排序