动态分配const对象(C++)

2014-11-24 09:41:14 · 作者: · 浏览: 1

C++中,允许动态创建const对象,格式如下:


const int *p = new const int(128);


与其他常量一样,动态创建的const对象必须在创建时初始化,并且初始化后,其值不能改变。


尽管不能改变const对象的值,但可以删除动态创建的const对象,格式如下:


delete p;


这个和普通的对象一样,可以对其进行删除操作。


从配置文件读入的数据可以用来初始化const对象,供后续程序使用。


伪代码如下:


int num;


... //读取配置文件,并将配置数据填充到num


const int *pNum = new const int(num); // num初始化const对象


cout<<*pNum<使用const对象


...


delete pNum;


当数组的大小依赖于某些动态因素时(比如配置文件等),可以考虑用const对象。


伪代码如下:


int num;


... //获取num的值


const int *pNum = new const int(num); // num初始化const对象


unsigned char _data[*pNum]; //创建数组


...


delete pNum


示例代码如下:


#include


using namespace std;


int main()
{
int num;
cin>>num;
const int *pNum = new const int(num);
int arr[*pNum];
for(int i=0;i<*pNum;++i) arr[i] = i;
for(int i=0;i<*pNum;++i) cout< cout< return 0;
}


当然还有很多其它场景,我暂时想到了这些,这里记录下来,方便以后查阅。