程式設計經驗 乙個關於常量不能被修改的錯誤

2021-07-03 09:10:22 字數 638 閱讀 7300

執行報錯:

unhandled exception at 0x001813d1 in test1.exe: 0xc0000005: access violation writing location 0x00185832.

先直接上**

#include #include using namespace std;

void main()

宣告的respone是乙個常量,常量無法被修改。若嘗試修改之,則會崩潰報錯。

這樣明顯的錯誤我們不會犯,但是以下情況我們往往會犯錯。

#include #include using namespace std;

void func1(char* ch)

void main()

以上情況我們很容易忽視,這樣就造成了編譯通過,但是執行就會崩潰的情況。

稍微該以下就可以避免這種情況

void func1(char* ch)

修改為

void func1(const char* ch)

設計乙個不能被繼承的類

分類 cpp 2012 02 19 20 33 1390人閱讀收藏 舉報destructor constructor function class 編譯器c 在c 中每個類都乙個建構函式和乙個析構函式,即使使用者不明確定義,系統也會類定義乙個預設的建構函式和析構函式。當建立該類的物件可以顯示或者隱式...

實現乙個不能被繼承的類

分析 普通類都能被繼承,但當這個類的建構函式被宣告為私有時,這個類便不能被繼承,同時也不能在類外面定義該型別的物件,該怎麼解決這個問題呢?方法一 類物件的構造是通過建構函式實現的,如果將建構函式宣告為私有或者保護型別,那麼在類外是不能呼叫建構函式的,也就不能在類定義出物件。對此,我們可以在類裡定義乙...

關於被問及的乙個問題

問 怎麼樣將這樣乙個 123456789 的數字用逗號隔開 比如 123,456,789.開始很統一想到模3之類的,寫了一下發現有問題。其實這個題有很多種解法,我也不清楚考官為何要問這一問題。1.正則 其實容易想到正則,但是用筆來寫就得一次成功,沒有退路,而且我的正則不算好,想了半天覺得遞迴。reg...