C++中,每次实例化一个对象,都会调用一次构造函数,阻止建立类的对象,最容易的方法就是私有化构造函数
class A{
private:
A();
A(const A& a);
};
对象创建方式:
- 友元函数:friend A& createA()
- 静态函数:static A& createA()
- 使用静态变量计数,让静态变量跟踪A对象存在的数量,类构造时值加1,类析构时,值减1
注:C++中,静态成员函数可以访问静态成员变量和静态成员函数,因为类的非静态成员函数会传入一个隐藏的this指针,这是大家都知道的。非静态的成员函数是属于类的,不属于某个对象,所以不含有this指针,所以只能调用静态成员函数和静态成员函数。