class T{
public :
T();
void sysi();
void addi();
int k;
};
#include<iostream>
#include "t.h"
using namespace std;
//static 加与不加效果是一样的,私有的静态变量
int i = 0;
T::T(){
k=0;// 局部变量
}
void T::sysi(){
cout<<"k is:"<<k<<endl;
cout<<"i is:"<<i<<endl;
}
void T::addi(){
k = k+1;
i = i+1;
}
#include<iostream>
#include "t.h"
using namespace std;
int main()
{
T *t = new T();
T *t1 = new T();
t1->addi();
t->sysi();
t1->addi();
t->sysi();
/*
error!
i is not i t.h
int a = T::i;
cout <<"a is :"<< a<< endl;
*/
delete t;
delete t1;
}
result:
k is:0
i is:1
k is:0
i is:2
aircoder@aircoder:~/c++/static_t$
------------------------------------------------------
分享到:
相关推荐
本篇文章将深入探讨静态变量的使用,帮助初学者更好地理解这一知识点。 首先,我们来了解一下静态变量的基本定义。静态变量(static)分为两种类型:静态局部变量和静态全局变量。它们与普通变量的主要区别在于其...
例如,我们可以定义一个统计类`MyClass`对象数量的静态变量`objectCount`: ```cpp class MyClass { public: MyClass() { ++objectCount; } ~MyClass() { --objectCount; } static int getObjectCount() { ...
"C++静态成员函数与静态成员变量小结" 静态成员在C++中扮演着重要的角色,包括静态数据成员和静态函数成员两部分。静态成员是指在类体中使用static修饰符声明的成员,可以直接使用类名+静态成员名访问该静态成员。...
- 设计和使用访问静态变量的函数时,需考虑重入问题,因为静态变量都位于静态数据存储区,全局可见。 - 需要一个可重入的函数时,应避免在函数中使用`static`变量,以免出现内部存储器问题。 - 当函数返回值为指针...
然而,值得注意的是,在C++中,对静态成员变量使用`new`和`delete`进行手动管理并不常见,因为静态成员变量默认就具有全局作用域和生命周期。因此,这种做法虽然可行,但在实际开发中应审慎使用,避免不必要的复杂性...
6. **封装**:如果一个变量需要在多个类之间共享,考虑使用静态成员变量或使用指针或引用传递,而不是全局变量。 总之,虽然全局变量在某些情况下可以简化代码,但过度依赖全局变量会导致代码难以理解和维护。在...
在C++或类似的编程语言中,静态变量有以下特点: 1. 生命周期:静态变量在整个程序运行期间只初始化一次,其生命周期从定义时开始,直到程序结束。 2. 存储位置:静态变量存储在内存的静态存储区,不同于栈上的局部...
通过将全局变量的引用封装在函数内部,使其成为函数内的静态变量。这样,变量只在第一次调用函数时初始化。但这种方法无法控制析构顺序,可能会导致未预期的行为。为了应对这个问题,可以使用智能指针,如`std::...
用c++的类实现,对于c++初学者帮助较大,主要熟悉静态变量 静态方法的使用 将练习与数据结构相结合
总的来说,C++的静态成员变量是一种强大的工具,但也需要谨慎使用。理解它们的工作原理以及它们如何影响程序的结构和行为,对于编写高质量的C++代码至关重要。在实践中,我们应该根据具体需求来决定是否使用静态成员...
### C++静态成员变量与静态成员函数详解 #### 静态成员变量 在C++中,静态成员变量是类的一个特殊成员,它被所有该类的对象所共享。这意味着无论创建多少个对象,静态成员变量都只有一个副本存在于内存中。 **...
c++例程:对局部静态变量有效域进行验证
- **静态变量**: 在程序多次调用过程中保持原有的赋值状态不变。 - **变量作用范围**: 通过`static`关键字限定变量的可见性范围。 - **静态存储方式**: 改变变量的存储位置,使之在整个程序运行期间都存在。 - **...
C++提供了四种存储属性:自动变量、外部变量、静态变量和寄存器变量。自动变量是最常见的类型,通常在函数内部声明,其存储空间在栈上分配,并在函数调用结束时自动释放。外部变量则是在函数外部定义的,作用域覆盖...
3. **静态变量**:C++和Java都支持静态变量,但C++中的静态成员属于类本身,而非类的每个实例,而在Java中,静态变量也适用于类的所有实例。 4. **初始化**:C++允许在类声明中直接初始化成员变量,Java则需要在...
变量类型是编程语言中非常重要的一个概念,全局变量、局部变量、静态变量都是程序员经常使用的变量类型,但是这些变量类型之间的区别和联系却经常让人感到困惑。今天我们将详细地探讨这些变量类型之间的区别和联系,...
C++中静态成员函数与静态成员变量(static ) 这篇介绍了静态成员函数与静态成员变量,是我的读书笔记,我希望它够简短但又比较全面,起到复习的作用。如果有一些C++知识记不清楚了,它可以帮你很快回忆起来。 复习...
要从其他文件中引用全局静态变量,需要使用`extern`关键字声明。例如: `file1.cpp` ```cpp static int secretNumber = 42; // 全局静态变量,仅在file1.cpp中可见 // ... ``` `file2.cpp` ```cpp extern int ...
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放。 4、...
这个资源介绍了如何在C++编程中使用静态局部变量来统计函数被调用的次数。静态局部变量在函数内声明,但其生命周期贯穿整个程序运行过程,每次函数调用时,该变量不会被重新初始化。本文将详细解释静态局部变量的...