為何類中變數不能賦值也不能初始化?

2021-09-23 15:31:38 字數 350 閱讀 3770

首先c++中給變數賦值的工作是,在該變數的記憶體位置中儲存某某值。理解這點之後再繼續看。

class 也就是類,我舉例 cmyclass。 我宣告它的時候他是不存在於記憶體中,也就是說他不是實際存在的物件,只是一張設計圖。因此你可以在裡面宣告乙個變數 (int a)。但是它其實不存在實體因此給該變數的記憶體位置儲存資料是不可能的。 class在記憶體中生成時應該是

cmyclass abc;

這樣你宣告的class會在記憶體中存在實體,(可以理解成用你的設計圖生成了一件實實在在存在的東西) 這個時候類裡的變數也會有實體,因此可以賦值。

但是在c++11裡已經允許定義類的時候給非靜態資料成員賦初值了。

解決 Value註解不能為靜態變數賦值

已經多次遇到這個問題,老是忘記了,記錄一下。使用了spring的 value註解,但是沒有賦值成功,value private static string integraionurl 但是最後沒有拿到值,查了下資料發現 value註解為靜態變數賦值是只需在set方法上使用 value即可,如下 pr...

關於為什麼類的靜態成員變數不能立即初始化

我們都知道 1是錯誤的,今天我去追究其原因。當然有些地方屬於個人理解,有所紕漏,請不吝惜指正。test.h 1 當我們寫下面的 時,而沒有在cpp檔案裡給出定義,就會出現無法解析的外部符號錯誤。這是因為 static int a 是對變數a的宣告。我們都知道,類例項化時,編譯器分配記憶體給成員變數,...

C 中引用不能重新賦值的理解

教材上說引用是不能重新賦值的,可是下面的程式能正常執行,不會出錯。這裡怎麼出現了引用賦值語句呢 語句 1 是不是教材錯了?原因究竟是什麼呢?請看如下程式 include void main int i 1,j 5 int k i k j 語句 1 cout i j k 首先想想程式執行結果應該是什麼...