静态成员变量与静态成员函数
2012-08-27 14:54
218 查看
静态成员变量不专属于某个对象,他属于整个类中所有对象的成员变量,在实例化一个对象的时候可能无法给它开辟内存,因此我们需要在全局为他开辟内存。
#include<iostream> using namespace std; class A { public: static int count; A(int i):key(i) { count++; cout<<"构造函数!"<<endl; } ~A() { count--; cout<<"析构函数!"<<count<<endl; } int Getkey() { return key; } int GetCount() { return count; } private: int key; }; int A::count=0; int main() { A a(5); cout<<a.Getkey()<<" "<<a.GetCount()<<endl; A b(6); //可以直接用类名去访问静态成员变量 cout<<A::count<<endl; cout<<b.GetCount()<<endl; return 0; }
#include<iostream> using namespace std; class A { public: static int count; A(int i):key(i) { count++; cout<<"构造函数!"<<endl; } ~A() { count--; cout<<"析构函数!"<<count<<endl; } int Getkey() { return key; } int GetCount() { return count; } private: int key; }; int A::count=0; int main() { A a(5); cout<<a.Getkey()<<" "<<a.GetCount()<<endl; A b(6); //可以直接用类名去访问静态成员变量 cout<<A::count<<endl; cout<<b.GetCount()<<endl; return 0; }
静态成员函数不能访问普通成员变量以及普通成员函数,但是可以访问静态成员变量和静态成员函数。因为静态成员函数是属于整个类的,所以他不能访问某个对象的 成员
变量,因为它没有this指针,但是他可以访问静态成员函数和静态成员变量。
#include<iostream> using namespace std; class A { public: A(int i):key(i) { count++; cout<<"构造函数!"<<endl; } ~A() { count--; cout<<"析构函数!"<<count<<endl; } int Getkey() { return key; } static int GetCount() { return count; } static void Show() { cout<<count<<endl; count++; //需要讲GetCount变成static才能被Show访问 cout<<GetCount(); } private: int key; static int count; }; int A::count=10; int main() { A::Show(); A a(5); cout<<a.Getkey()<<" "<<a.GetCount()<<endl; A b(6); cout<<b.GetCount()<<endl; return 0; }
但是静态成员变量可以被常规成员函数所访问:
#include<iostream> using namespace std; class A { private: static int a; int b; public: A(int num):b(num){} void fun() { cout<<a<<endl; cout<<b<<endl; } static void fun2() { cout<<a<<endl; // cout<<b<<endl; } }; int A::a=8; int main() { A ob(4); ob.fun(); ob.fun2(); }
相关文章推荐
- C++静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- 静态成员变量 和 静态成员函数
- C++中静态成员函数访问非静态成员变量
- 为什么C++静态成员函数不能访问非静态成员变量、不能调用非静态成员函数?(面试常考)
- c++中的静态成员变量与静态成员函数
- 类中的静态成员函数访问非静态成员变量
- C++类中的静态成员变量和静态成员函数的作用
- C++静态成员变量和静态成员函数
- 类的静态成员函数和静态成员变量的使用
- MFC C++类中的静态成员变量和静态成员函数的作用
- 第七节, 静态成员变量和静态成员函数
- C++ 类中的静态成员变量,静态成员函数
- C++类中的静态成员变量和静态成员函数的作用 (一)
- 静态成员变量和静态成员函数
- 静态成员函数调用非静态成员变量
- C++中静态成员变量与静态成员函数
- C++类中的静态成员变量和静态成员函数的作用
- 用静态成员函数调用非静态成员变量