如果类的构造函数私有化,再实例化时,通过静态成员函数来调用构造函数。

原创 2015年07月08日 16:35:48

静态私有成员在类外不能被访问,可通过类的静态成员函数来访问;

当类的构造函数是私有的时,不像普通类那样实例化自己,只能通过静态成员函数来调用构造函数。

对象之间通过类的静态成员变量来实现数据的共享的。静态成员变量占有自己独立的空间不为某个对象所私有。


实例:::

class A
{
private:
   A(){  }
   ~A(){ }
 
public:
   void Instance()//类A的内部的一个函数
   {
       A a;
   }
};
该类以外调用的话,必须申明为静态成员函数,才能调用:

class Single
{
private: Single();
       ~Single();
static Single* gPsg;
public:
       static  Single* GetSingle()
       {
              if(!gPsg)
                      gPsg = new Single();
              return gPsg;
       };
};
 
Single* Single::gPsg = null;
 
void sFun()
{
 Single::GetSingle()->....这样就可以调用了;
};





版权声明:本文为博主原创文章,同意转载。

相关文章推荐

数组--->工具类的构造函数需私有化,成员方法为静态

class ArrayTool { private ArrayTool() { } public static int getMax(int[] arr) { int m...

java 父类子类静态成员,实例成员,构造函数初始化的顺序

java中的成员分为:  静态成员 : 静态成员变量,静态代码块,静态成员方法  实例成员:实例成员变量,实例代码块,实例成员方法  构造方法  析构方法  下面做的实验,主要是验证 当ne...

构造函数,析构函数,虚函数,内联函数,静态成员函数,重载,覆盖,隐藏

C++语言特性:构造函数,析构函数,虚函数,内联函数,静态成员函数,重载,覆盖,隐藏 来自:CSDN博客推荐文章   |  时间:2012-07-22 14:19:01 原文链接: h...

为什么内联函数,构造函数,静态成员函数不能为virtual函数

为什么内联函数,构造函数,静态成员函数不能为virtual函数? 1> 内联函数 内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。 ...

为什么内联函数,构造函数,静态成员函数不能为virtual函数?

http://blog.csdn.net/ylong17/article/details/6652344 为什么内联函数,构造函数,静态成员函数不能为virtual函数? 1> 内联函...

为什么虚函数必须是非静态成员函数 构造函数能为static吗?

静态函数 用static声明的函数是静态函数。静态函数可以分为全局静态函数和类的静态成员函数。 Static关键字 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在...

为什么虚函数必须是非静态成员函数 构造函数能为static吗?

静态函数 用static声明的函数是静态函数。静态函数可以分为全局静态函数和类的静态成员函数。 Static关键字 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在...

C++语言特性:构造函数,析构函数,虚函数,内联函数,静态成员函数,重载,覆盖,隐藏

C++中class默认属性为private, struct默认属性为public 构造函数:        1.初始化对象成员;        2.创建类对象;        由于虚函数是建立...

二十五、继承(二) 不能自动继承的成员函数、继承与构造函数、友元关系与继承、静态成员与继承

一、不能自动继承的成员函数           有三种函数不能被继承,构造函数,析构函数和=运算符,基类的构造函数和析构函数只负责对基类数据成员的初始化和清理,因为基类并不知道派生类有哪些数据成员。=...
  • tianttt
  • tianttt
  • 2015年01月13日 21:23
  • 486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如果类的构造函数私有化,再实例化时,通过静态成员函数来调用构造函数。
举报原因:
原因补充:

(最多只允许输入30个字)