混寫C和C 出現的問題

2021-09-19 22:53:19 字數 664 閱讀 5674

很多人因為一開始寫了較多的c語言**,然後在寫c++**時,用面向過程的思想去寫,引發了很多的bug

#include #include using namespace std;

int main(void)

你會發現該並不是像我們預想的一樣,第一行輸出 abc, 第二行輸出 abc123。

為什麼123沒有被插入呢?

但是如果我們直接列印 字串物件s 呢;

為什麼直接列印字串s 就對了呢。

原因很簡答, 你一開始用string定義了乙個物件,說明你要用的是c++**來編寫程式,那麼你為什麼又要用char* 呢?

char* 是c語言裡面的概念,既然你已經用了c++的思想,那麼你為什麼不把char*定義成string。

因為string類裡面的 char*  進行了什麼操作你是不知道的。所以如果你會用物件導向和面向過程的程式設計思想去程式設計,那麼你的程式絕對會出翔一堆bug。

所以大家一定不要混用物件導向和面向過程的思想去程式設計。

C 的易混概念

靜態多型 過載 根據函式的引數個數和型別區分呼叫的函式。早繫結 動態多型 根據所指物件的虛函式表決定呼叫的函式。晚繫結 函式的覆蓋 過載 隱藏 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 覆蓋 派生類函式覆蓋基類函式,特徵是...

C 新手出現的問題

自己最近在學些編寫c 的程式,出現了一些錯誤,大家可以看看。1 c 時提示stray 161 in program 程式中含有全形字符 如全形空格等 一般出現在拷貝網上的 或者切換中英文輸入法時。2 case使用時出現的錯誤,長時間不用竟然忘記了 string a dis i classfic sw...

C 程式設計出現的問題

q1 如果a類引用b類,b類引用a類,如何解決呼叫的死迴圈?例子 a的標頭檔案 a.h include a.h class a class a 注意一 在b的標頭檔案加上這個 class b 但a.cpp要 include a.h q2 定義靜態成員函式?step1 在a.h的標頭檔案定義類 cla...