C++staticconst和static const

    xiaoxiao2023-10-07  157

    1:static成员函数是类的组成部分,但不是任何对象的组成部分,因此static成员函数没有this指针(成员函数的隐含实参);

         static成员函数也不能声明为const;但是static变量可以被声明为const;

         static成员函数可以直接访问所属类的static成员,但不能直接访问所属类的非static成员。

     

    test_1.h 

    class test_1 { public: //test_1(); //由于存在const成员,因此构造函数必须使用初始化参数列表 test_1(int x) :c_wid(x) { } ~test_1(); private: //static int s_len = 5; //static静态成员变量不能在类内部初始化 static int s_len; //const int c_wid = 5; //使用无误,但是不推荐,因为基于类的所有对象的这个成员变量值都一样,失去了对象的不同特性 const int c_wid; static const int sc_area; //const static int sc_area; //与上一行代码static const效果一样 };

    test_1.cpp

    #include "test_1.h" //static int test_1::s_len = 3; //static关键字只能用于类内部的声明中,定义时不能标示为static int test_1::s_len = 3; const int test_1::sc_area = 15; test_1::~test_1() { }

     

    最新回复(0)