c++ 中类的实例化大致可以分为两类
class A
{
public:
int a;
string b;
}
实例化类;
(1)A a1 ;
(2)A *a1 = new A();
有没有new 的区别在于:
前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
大程序用new,小程序直接申请
new必须delete删除,不用new系统会自动回收内存
既然在这里提到了类的实例化,补充写一下c++中的单例模式:
作用:保证一个类只能实例化一次 。
实例:
class SingleMode
{
private:
SingleMode(); //构造函数要设为私有成员
static SingleMode *instance;
public:
static SingleMode * getInstance(); //工厂方法(用来获得实例
}
SingleMode * SingleMode::instance = null;
SingleMode * SingleMode::getInstance()
{
if(instance == null)
{
instance = new SingleMode();
}
return instance;
}
有什么问题可以留言,大家一起讨论!