static成员和static成员函数

来源:互联网 发布:淘宝哪家美国代购靠谱 编辑:程序博客网 时间:2024/06/04 09:05


下面用一个简单的程序加以理解

#include <iostream>#include <string>using namespace std;class   Test   {public:static int j;static void   init();//init定义为static 或非static都可以修改static成员i的值static int revise_i(int x);int  get_i();         //由于没有this指针,static成员函数不能反问对象的非static成员,用static输出k是非法的private:static int i;int k;const static int r = 1; //只有const static 成员在类定义时初始化//若将上面的i直接初始化,编译时报错};//外部定义时不能再标示staticint Test::i=0; //very important:外部定义(正好一次),之后i只能通过init修改int Test::j=5; //j为public,之后可以直接访问和修改void   Test::init(){i=10;}int   Test::get_i(){return   i;}int Test::revise_i(int x){i = x;return i;}int   main(){Test   obj;cout << obj.get_i() << endl; //通过obj.init(); //私有的静态成员只能通过类的静态成员函数进行修改cout << obj.get_i() << endl;cout << Test::j << endl;obj.j = 15;  //公有的静态成员可以直接进行修改,访问方式可以obj.j或者Test::jTest::revise_i(555);cout << "after revise_i, i = " << obj.get_i() << endl;cout << Test::j << endl;system("pause");return   0;}


原创粉丝点击