本文实例讲述了C++实现动态分配const对象的方法。分享给大家供大家参考。具体方法分析如下:
一、创建
在C++中,允许动态创建const对象,格式如下:
1
|
const int *p = new const int (128);
|
与其他常量一样,动态创建的const对象必须在创建时初始化,并且初始化后,其值不能改变。
二、删除
尽管不能改变const对象的值,但可以删除动态创建的const对象,格式如下:
1
|
delete p;
|
这个和普通的对象一样,可以对其进行删除操作。
三、应用场景举例
1、加载配置文件
从配置文件读入的数据可以用来初始化const对象,供后续程序使用。
伪代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
int num;
... //读取配置文件,并将配置数据填充到num
const int *pNum = new const int (num); // 用num初始化const对象
cout<<*pNum<<endl; //使用const对象
...
delete pNum;
|
2、创建数组
当数组的大小依赖于某些动态因素时(比如配置文件等),可以考虑用const对象。
伪代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
int num;
... //获取num的值
const int *pNum = new const int (num); // 用num初始化const对象
unsigned char _data[*pNum]; //创建数组
...
delete pNum
|
示例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <iostream>
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<<arr[i]<< " " ;
cout<<endl;
return 0;
}
|
当然还有很多其它场景,这里暂时记录了这些,方便以后查阅。
希望本文所述对大家的C++程序设计有所帮助。