switch支路宣告區域性變數問題

2021-10-03 18:16:04 字數 522 閱讀 2603

寫魔獸2.0的時候發現了這種情況

在每個支路中,宣告不同派生類指標,但是普通寫法會有如下報錯

jump bypasses variable initialization
顯示跳過了旁路的變數定義,應該是為了防止在該case未成立的情況下,在其他case呼叫這個變數

而在這個程式中,直到遇到switch的「}」右花括號,變數的作用域才終結

如果未經定義直接被呼叫就會出錯

解決這個問題只需在每個case對應的**加上「{}」限制作用域即可

switch

(cir[cir]

)break

;case1:

//ninja

break

;case2:

//iceman

break

;case3:

//lion

break

;default:/

/wolf

}

區域性變數 全域性變數以及global 宣告

區域性變數 定義在方法內部的變數 全域性變數 在方法外面定義,定義在呼叫之前 全域性變數的定義命名規範 g a 100 global 如果變數是全域性變數,則在方法內部對變數全域性變數修改的化要加關鍵字 wendu 0 defget wendu global wendu 這裡要宣告為全域性變數才能對...

C C 中變數(區域性變數)的宣告和範圍

全域性變數往往在main函式中宣告,其作用範圍為整個 區域性變數存在於宣告該變數的塊語句或方法結束的右花括號 之前的作用域內。本文對c 中的一些變數宣告和範圍關係借幾個demo展示出來。情況一 變數包含產生歧義 根據變數的作用域遵循的原則 區域性變數存在於宣告該變數的塊語句或方法結束的右花括號 之前...

成員變數 區域性變數

成員變數 作為類的成員而存在,直接存在於類中。所有類的成員變 量可以通過this來引用。區域性變數 作為方法或語句塊的成員而存在,存在於方法的引數列表和方法定義中。1.成員變數可以被 public,protect,private,static等修飾符修飾,而 區域性變數不能被控制修飾符及 stati...