C++的static静态函数
来源:互联网 发布:装修风格效果图软件 编辑:程序博客网 时间:2024/06/05 12:49
静态成员函数中没有this指针
#include <iostream>using namespace std;int y; //全局区的变量 在哪里都可以访问/*** C中的使用方式 ****///1.限制只能在本文件中访问static int x;//2.函数中的static变量,不受函数的生命周期影响,程序开始时候创建,程序结束时候销毁void test(){ static int s;}/* ** C++中的使用方式 ** */class Example{public: int a; //static修饰的变量,属于类,但是所有对象共享它,也就是说通过这个类创建的对象都可以访问它。换而言之,假如创建了10个对象,如果其中一个对象修改了这个变量的值,那么其他9个对象访问这个变量的值也都变了 static int x;#pragma 那么问题来了,这个x变量创建出来,x内存到底在哪?? void show(){ this-> a = 100; x = 900; //非静态函数中可以访问静态变量 和静态函数 show2(); cout << "a = " << a << endl; } //这个函数是属于类的,调用它的时候是通过类名调用的。 static void show2(){//因为是类名调用,所以并没有传进对象 // this -> a = 200;//不能在这个函数里面修改成员变量 //静态成员函数中没有this指针 //静态方法中不能使用非静态的成员变量 x = 800; //this-> show();//静态函数中不能访问非静态函数 } };//类中的static变量,我们必须在静态区手动为他分配空间//变量类型 类名:: 变量名int Example:: x; //也可以直接初始化//主函数int main(int argc, const char * argv[]){ // Example ex1; ex1.a = 100; ex1.x = 200; Example ex2; ex2.a = 300; ex2.x = 400; cout << "ex1.a = " << ex1.a << endl; cout << "ex2.a = " << ex2.a << endl; cout << "ex1.x = " << ex1.x << endl; cout << "ex2.x = " << ex2.x << endl; //一般不建议用对象直接调用static的变量,而是通过类名。对象调用不报错是因为编译器帮忙通过对象找到类型调用的 cout << "通过类名调用 " << Example::x << endl; ex1.show();//对象调用成员函数会隐式的把对象本身传进去,在函数参数那里会有this指针来接收 Example::show2(); return 0;}
0 0
- C++static静态成员函数
- C++的static静态函数
- 静态函数的优点 static
- C语言static、静态变量和函数
- C语言中的静态(static)函数
- C++ 类的 静态成员 (static) 静态成员函数 Static
- static(c++)静态数据成员和静态成员函数
- C语言中static的作用及C语言中使用静态函数有何好处
- c/c++ 静态函数(static)和普通函数
- Static静态成员函数的使用
- static静态成员函数的作用
- C,C++的静态函数及static与const的区别
- C语言的静态变量声明static
- object-c的静态变量(static)
- C语言 静态变量static的用法
- 静态函数static function
- static ---静态成员函数
- static 静态成员函数
- 解决:MATLAB_Compiler_Runtime libgfortran.so.3: version `GFORTRAN_1.4' not found
- linux 路由表设置(双网卡)
- 【拓扑排序】 Codeforces Round #290 (Div. 1) A Fox And Names
- 一个项目经理的个人体会、经验总结
- 进程、控制终端、会话、守护进程
- C++的static静态函数
- VMWare Image Clone Problem: eth0 Renamed As eth1
- ios修改了coredata数据结构后,更新安装会闪退
- 关于大型网站技术演进的思考(一)--存储的瓶颈(1)
- 下拉框应用
- linux 进程高cpu问题分析
- Oracle数据库分区存储
- IE动态加载js
- jacob调用Excel中的宏