在下面的代码片段中,局部变量 result1 是静态的吗?关键字 static 是强制声明静态局部变量还是自动就足够了?
static int ExpensiveInit() {
...
}
class Foo {
void Bar() {
auto result1 = ExpensiveInit();
static int result2 = ExpensiveInit();
...
}
}
static
当您希望类的所有实例共享此变量的相同值时,您可以声明类属性,例如,计算您拥有的类的实例数量很有用。
因此通过陈述
static int count = 4;
作为你的类的一个属性,每个实例都可以访问这个变量,如果一个实例增加count
,它也会为其他实例增加这个变量
自动声明意味着变量的类型将由编译器自动分配,只要它是一致的。
如果你说:
auto hello = "Hello";
你好被认为是一个字符串
因此,不,在您的示例中,result1 不是静态的,它是一个简单的整数,其中复制了由 priceInit() 返回的值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句