C++實(shí)現(xiàn)動態(tài)分配const對象實(shí)例
本文實(shí)例講述了C++實(shí)現(xiàn)動態(tài)分配const對象的方法。分享給大家供大家參考。具體方法分析如下:
一、創(chuàng)建
在C++中,允許動態(tài)創(chuàng)建const對象,格式如下:
const int *p = new const int(128);
與其他常量一樣,動態(tài)創(chuàng)建的const對象必須在創(chuàng)建時初始化,并且初始化后,其值不能改變。
二、刪除
盡管不能改變const對象的值,但可以刪除動態(tài)創(chuàng)建的const對象,格式如下:
delete p;
這個和普通的對象一樣,可以對其進(jìn)行刪除操作。
三、應(yīng)用場景舉例
1、加載配置文件
從配置文件讀入的數(shù)據(jù)可以用來初始化const對象,供后續(xù)程序使用。
偽代碼如下:
int num; ... //讀取配置文件,并將配置數(shù)據(jù)填充到num const int *pNum = new const int(num); // 用num初始化const對象 cout<<*pNum<<endl; //使用const對象 ... delete pNum;
2、創(chuàng)建數(shù)組
當(dāng)數(shù)組的大小依賴于某些動態(tài)因素時(比如配置文件等),可以考慮用const對象。
偽代碼如下:
int num; ... //獲取num的值 const int *pNum = new const int(num); // 用num初始化const對象 unsigned char _data[*pNum]; //創(chuàng)建數(shù)組 ... delete pNum
示例代碼如下:
#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;
}
當(dāng)然還有很多其它場景,這里暫時記錄了這些,方便以后查閱。
希望本文所述對大家的C++程序設(shè)計有所幫助。
相關(guān)文章
C++中的explicit關(guān)鍵字實(shí)例淺析
在C++程序中很少有人去使用explicit關(guān)鍵字,不可否認(rèn),在平時的實(shí)踐中確實(shí)很少能用的上,再說C++的功能強(qiáng)大,往往一個問題可以利用好幾種C++特性去解決。接下來給大家介紹 C++中的explicit關(guān)鍵字,需要的朋友可以參考下2017-03-03
C語言結(jié)構(gòu)體內(nèi)存的對齊知識詳解
這篇文章主要介紹了C語言結(jié)構(gòu)體內(nèi)存的對齊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
關(guān)于STL中vector容器的一些總結(jié)
vector作為STL提供的標(biāo)準(zhǔn)容器之一,是經(jīng)常要使用的,有很重要的地位,并且使用起來也是灰常方便。vector又被稱為向量,vector可以形象的描述為長度可以動態(tài)改變的數(shù)組,功能和數(shù)組較為相似2013-09-09
C語言中pthread_create函數(shù)實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù)
本文主要介紹了C語言中pthread_create函數(shù)實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間
這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間,需要的朋友可以參考下2020-03-03

