cosnt成員資料的初始化
const可以用來宣告常量也就是說他的值不能被修改;
const成員必須在定義的時候同時初始化,不能進行賦值
如 const int a;a的值不能修改,不能給它賦值,如何才能讓它一開始就擁有一個值?
1、在宣告的時候對他進行初始化
const int a=1;
2、在函式中宣告的形參,在函式被呼叫時會得到實參的值。
但是如果在類中呢?
class Demo
{
const int ci;
public:
void get_ci()
{
return ci;
}
};
當直接用這個類定義一個物件時,會出錯,提示沒有初始化const成員變數值 且提示ci是一個只讀的變數。
const用於類中成員變數時,將類成員變為只讀屬性
(只讀:不能出現在“=”的左邊,但在類中仍可以用一個指標來修改其值。) 所以不可以直接在類的建構函式中初始化const 的成員
。
const成員變數只可以初始化列表中初始化
程式碼:
#include<iostream>
using namespace std;
class Demo
{
private:
const int ci;
public:
Demo() :ci(10)
{
}
int getci()
{
return ci;
}
int setci(int i)
{
int* mi =(int *) &ci;
*mi = i;
return ci;
}
};
int main()
{
Demo d;
cout << "ci=" << d.getci();
d.setci(90);
cout << "ci=" << d.getci();
getchar();
return 0;
}
初始化列表是先於建構函式的函式體執行
,
並且成員的初始化列表與成員的宣告順序相同的
C語言中的const其實只是只讀變數可以用指標間接改變其值
const修飾的區域性變數在棧上分配記憶體空間
const修飾的全域性變數在只讀儲存區分配內儲存空間
#include <stdio.h>
int main(void)
{
const int a=0;
int *p= &a;
*p=5;
printf("*p=%d\n",*p);//5
printf("a=%d \n",a);//5
printf("&a=%p p=%p",&a,p);//相同
return 0;
}
相關文章
- 類成員變數的初始化變數
- 12-成員變數的初始化變數
- java基礎-初始化與清理-成員初始化Java
- 類的成員變數的初始化順序變數
- c++成員變數初始化C++變數
- 物件資料成員的初始值物件
- C++類的靜態成員變數初始化C++變數
- C++ 靜態資料成員C++
- 如何成為資料庫管理員(DBA)?資料庫
- C++ 成員資料指標成員函式指標簡單測試C++指標函式
- Java基礎02 方法與資料成員Java
- C++ 建構函式 explicit 關鍵字 成員初始化列表C++函式
- 主資料治理的成功取決於“強有力的”團隊成員XM
- Java 通過反射獲取類的資訊(成員變數,成員方法,構造方法)Java反射變數構造方法
- TypeScript 中 class 的例項成員與靜態成員TypeScript
- C++類中的常成員和靜態成員C++
- 美創科技正式成為“資料安全強基計劃”成員單位
- MongoDB 初始化資料同步MongoDB
- 資料庫表初始化資料庫
- PG資料庫初始化資料庫
- 【python】類的特殊成員Python
- ArrayList的常用成員方法
- 作為資料庫核心成員,如何讓淘寶不卡頓?資料庫
- C++中常資料的使用及初始化C++
- 更新關聯資料初始化
- 2020年資料員-崗位技能(資料員)模擬考試題庫及資料員-崗位技能(資料員)實操考試視訊
- 資料庫圈周盤點:資料庫執行管理員成新職業;資料庫公司Neon獲新融資資料庫
- 深度解讀《深度探索C++物件模型》之資料成員的存取效率分析(一)C++物件模型
- 深度解讀《深度探索C++物件模型》之資料成員的存取效率分析(二)C++物件模型
- 深度解讀《深度探索C++物件模型》之資料成員的存取效率分析(三)C++物件模型
- 微課|中學生可以這樣學Python(7.3.2節):資料成員Python
- 4 管理Broker配置的成員
- HDFS成員的工作機制
- hive初始化mysql資料庫失敗的原因HiveMySql資料庫
- day 17 成員
- 成員變數變數
- 組合(巢狀)的 補充,主動呼叫其他成員 以及特殊成員巢狀
- 達夢7資料庫初始化資料庫