C++学习之static关键字小结
发布人:shili8
发布时间:2024-12-23 12:01
阅读次数:0
**C++学习之static关键字小结**
在C++语言中,`static`关键字有多种用途,它可以修饰变量、函数、类成员等。理解`static`的含义和应用是C++程序员必备的基本功之一。在本文中,我们将对`static`关键字进行小结,包括其定义、作用域、变量、函数和类成员的使用。
###1. static定义在C++语言中,`static`关键字有多种含义,它可以修饰变量、函数、类成员等。`static`通常用于表示某个值或行为是局部的,不会被外界访问或修改。
###2. static作用域`static`关键字在C++中主要用于定义静态变量和静态函数。静态变量和静态函数都是程序内部的,不能被外部访问或修改。
#### 静态变量静态变量是程序内部的一个局部变量,它的值不会随着函数的执行而改变。静态变量在第一次使用时会被初始化一次,然后就保持不变了。
cpp#include <iostream> void testStaticVariable() { static int count =0; // 静态变量,第一次使用时会被初始化 std::cout << "count: " << count << std::endl; count++; } int main() { for (int i =0; i < 5; i++) { testStaticVariable(); } return0; }
在上面的例子中,`count`是静态变量,它的值不会随着函数的执行而改变。第一次使用时会被初始化为0,然后就保持不变了。
#### 静态函数静态函数是程序内部的一个局部函数,它不能被外部访问或修改。静态函数通常用于定义一些私有的函数,避免外部访问和修改。
cpp#include <iostream> class TestStaticFunction { public: void test() { static int count =0; // 静态变量 std::cout << "count: " << count << std::endl; count++; } }; int main() { TestStaticFunction test; for (int i =0; i < 5; i++) { test.test(); } return0; }
在上面的例子中,`test()`是静态函数,它不能被外部访问或修改。内部使用了一个静态变量`count`。
###3. static变量`static`关键字可以修饰变量,表示某个值是局部的,不会被外界访问或修改。
#### 静态整数变量
cpp#include <iostream> void testStaticInt() { static int count =0; // 静态整数变量 std::cout << "count: " << count << std::endl; count++; } int main() { for (int i =0; i < 5; i++) { testStaticInt(); } return0; }
#### 静态浮点变量
cpp#include <iostream> void testStaticFloat() { static float count =0.0f; // 静态浮点变量 std::cout << "count: " << count << std::endl; count++; } int main() { for (int i =0; i < 5; i++) { testStaticFloat(); } return0; }
#### 静态字符变量
cpp#include <iostream> void testStaticChar() { static char c = 'A'; // 静态字符变量 std::cout << "c: " << c << std::endl; c++; } int main() { for (int i =0; i < 5; i++) { testStaticChar(); } return0; }
###4. static函数`static`关键字可以修饰函数,表示某个函数是局部的,不会被外界访问或修改。
#### 静态成员函数
cpp#include <iostream> class TestStaticFunction { public: void test() { static int count =0; // 静态变量 std::cout << "count: " << count << std::endl; count++; } }; int main() { TestStaticFunction test; for (int i =0; i < 5; i++) { test.test(); } return0; }
#### 静态非成员函数
cpp#include <iostream> void testStaticNonMemberFunction() { static int count =0; // 静态变量 std::cout << "count: " << count << std::endl; count++; } int main() { for (int i =0; i < 5; i++) { testStaticNonMemberFunction(); } return0; }
###5. static类成员`static`关键字可以修饰类成员,表示某个值是局部的,不会被外界访问或修改。
#### 静态整数成员
cpp#include <iostream> class TestStaticIntMember { public: static int count; // 静态整数成员}; int main() { std::cout << "count: " << TestStaticIntMember::count << std::endl; return0; }
#### 静态浮点成员
cpp#include <iostream> class TestStaticFloatMember { public: static float count; // 静态浮点成员}; int main() { std::cout << "count: " << TestStaticFloatMember::count << std::endl; return0; }
#### 静态字符成员
cpp#include <iostream> class TestStaticCharMember { public: static char count; // 静态字符成员}; int main() { std::cout << "count: " << TestStaticCharMember::count << std::endl; return0; }
### 总结`static`关键字在C++中有多种用途,它可以修饰变量、函数、类成员等。理解`static`的含义和应用是C++程序员必备的基本功之一。在本文中,我们对`static`关键字进行了小结,包括其定义、作用域、变量、函数和类成员的使用。