static学习

来源:互联网 发布:淘宝细节图片尺寸 编辑:程序博客网 时间:2024/06/03 17:33

本文主要参考大神文章,但发现部分问题(变大部分),故单独列出来:http://blog.csdn.net/lwbeyond/article/details/6187501

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*///class A{//public://    A(int a);//    static void print();   //静态成员函数只能调用静态成员函数或者静态成员变量 //    void NonStaticFun();//private://    static int aa;         //静态数据成员的声明  //    static const int count;//常量静态数据成员(可以在构造函数中初始化)  //    const int bb;          //常量数据成员  //};////int A::aa = 0;             //静态成员的定义+初始化  //const int A::count = 25;   //静态常量成员定义+初始化  ////A::A(int a) :bb(a)//{                          //常量成员的初始化  //    aa += 1;//}////void A::NonStaticFun()//{////}//void A::print()//{//    cout << "count=" << count << endl;//    cout << "aa=" << aa << endl;//}////////void main(){//    A a(10);//    A::print();           //通过类访问静态成员函数  //    a.print();            //通过对象访问静态成员函数  //    system("pause");//}/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*//*验证如何正确的给const变量初始化,A为error例子,B为correct例子*///error  class A{public:    A(){}public:    const int c1 = 7;    //1.const变量可以直接类内初始化?  答:常量必须在这里初始化,不是说必须要通过参数化列表    static const int c2 = 8;    //static const float c2 = 8.2;       //2.static 变量不是只能在类外定义吗? 答:static常量整型可以在类内初始化,常量浮点数都不行,其他的必须类外初始化    //static  int c3 = 9 ;     //error,必须类外  };////correct  //class B//{//public://    B(int num) :c1(num){};//private://    const int c1;//    static const int c2;//    static int c3;//};//const int B::c2 = 7;  //不要加static  //int B::c3 = 7;        //不要加statci ////const成员初始化//class A//{//public://    A(int num):k(num) {}//private://    const int k;          //1.初始化列表初始化const成员//    static const int i;   //2.对于静态的const成员变量,可以在外部初始化  //};//const int A::i = 3;        //静态const成员外部初始化int main(){    return 0;}/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/