首页 > 试题广场 >

静态成员变量可以为私有的吗?声明一个私有的静态整型成员变量。

[问答题]

静态成员变量可以为私有的吗?声明一个私有的静态整型成员变量。

推荐

解:

可以,例如:

private:

static int a;

发表于 2018-04-18 20:51:29 回复(0)
可以
class a{
public:
...
private:
static int total;
}
编辑于 2020-07-23 22:00:45 回复(0)
OK 
#include <iostream>
#include <vector>
#include <memory>

using namespace std;

template <class T> //如果不使用模板设计,根本就是错误的
class  Singleton
{
private:
       class object_creator{
       public:
           object_creator()
           {
               Singleton::getInstance();//
           }
       };

       static object_creator create_object;
public:
   static T* getInstance() 
   {
       static T object;//局部静态函数,只初始化一次,在main函数之前初始化,不需要考虑析构问题,如果是指针的话需要考虑。
       return &object;
   }
};
// 
template <class T>
typename Singleton<T>::object_creator 
Singleton<T>::create_object; //我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化

class CUser:public Singleton<CUser>
{
public:    
        CUser()
        {
            cout<< " CUser()" <<endl;
        }
        ~CUser()
        {
            cout<< "~CUser()" <<endl;
        }
private:
      vector<string> m_name;

};
int main()
{  
    cout<<CUser::getInstance()<<endl;
  return 0;
}


发表于 2020-02-19 19:53:36 回复(0)