min*_*nda 3 c++ static instance
class MyClass
{
static int staticInt;
void instanceMethod( int param )
{
static int parameter = param;
}
}
Run Code Online (Sandbox Code Playgroud)
显然staticInt是在MyClass的所有实例之间共享.但是,不同的MyClass实例可以parameter在instaceMethod中具有不同的静态局部变量值吗?
更新
程序执行之间怎么样?当然,它们可能在多个程序实例中有所不同?什么定义"范围" - 执行单位?c ++运行时?
更新
谢谢 - 这帮助我压制了一个关键的错误.希望我能接受所有这些,但我会在第一个答案中没有其他标准.
为了使parameter不同实例具有不同的值,您必须创建parameter该类的非静态成员.
在当前版本中,所有实例都将共享同一个parameter对象.static在这方面,所有对象的行为完全相同.唯一取决于声明点的是名称的范围.即名称可见的区域.至于变量的寿命和保值特性 - 它们总是相同的.它尊重它就像一个"全局"变量,无论你在哪里声明它.
在你的榜样,有没有什么区别parameter,并staticInt当谈到自己的价值保持性能.唯一的区别是staticInt该类的所有成员都可以访问,而parameter只能通过instanceMethod方法访问.
该语言无法创建在程序执行期间值保持不变的变量.这种持久性必须手动实现.
| 归档时间: |
|
| 查看次数: |
4367 次 |
| 最近记录: |