cosnt成員資料的初始化

2021-10-11 20:46:39 字數 947 閱讀 9486

const可以用來宣告常量也就是說他的值不能被修改;
const成員必須在定義的時候同時初始化,不能進行賦值
如 const int a;a的值不能修改,不能給它賦值,如何才能讓它一開始就擁有乙個值?

1、在宣告的時候對他進行初始化

const int a=1;
2、在函式中宣告的形參,在函式被呼叫時會得到實參的值。

但是如果在類中呢?

class demo

};

當直接用這個類定義乙個物件時,會出錯,提示沒有初始化const成員變數值 且提示ci是乙個唯讀的變數。

const用於類中成員變數時,將類成員變為唯讀屬性(唯讀:不能出現在「=」的左邊,但在類中仍可以用乙個指標來修改其值。)所以不可以直接在類的建構函式中初始化const 的成員

const成員變數只可以初始化列表中初始化

**:

#include

using namespace std;

class demo

intgetci()

intsetci

(int i)};

intmain()

初始化列表是先於建構函式的函式體執行

並且成員的初始化列表與成員的宣告順序相同的

c語言中的const其實只是唯讀變數可以用指標間接改變其值

const修飾的區域性變數在棧上分配記憶體空間

const修飾的全域性變數在唯讀儲存區分配內儲存空間

#include

intmain

(void

)

This指標與成員資料初始化

成員資料 預設初始化 在類中直接進行初始化 如 public int a 3 通過無參構造對資料進行初始化 舉例 public class myclass 在類中直接構造和無參初始化任選其一。主要選擇建構函式初始化,因為會破壞類的抽象性。當前物件指標this this this 表示當前建立或使用的...

C 靜態成員資料 定義 初始化

由於記憶體的空間有限,我們常常關心已經使用掉了多少記憶體空間。如果我們修改上一章的鍊錶程式 程式15.5 要能計算出整個程式一共產生了多少鍊錶結點,我們該怎麼做呢?顯然,我們需要乙個計數器。每產生乙個結點,計數器就加一 每消除乙個結點,計數器就減一。由於結點的產生和消除只會與鍊錶類或結點類的某些成員...

靜態成員資料 靜態物件初始化

1 靜態成員資料的定義,與靜態型別的變數的定義方式一樣,要在成員資料的定義之前加關鍵字static。2 靜態成員資料必須有確定的值,但由於在類的定義中不能對成員資料直接進行初始化,故必須在類定義的外部對靜態成員資料再宣告一次,並進行初始化,此時,前面不需要加關鍵字static。同時為了保持靜態成員資...