(1)#define是巨集定義,它在預編譯的時候進行簡單地文字替換。
(2)#define不做型別檢查,它很容易出錯。
(3)#define僅僅是巨集替換,它不會占用記憶體。
(4)當我們用#define定義乙個簡單函式時,強烈建議使用內聯函式替換.
例如:牛客網華中第一狠人程德彪
#include using namespace std;
#define modd(x,y) x%y
#define modd2(x,y) ((x)%(y))
int main()
#include using namespace std;
class a};
int main()
這題主要是考的new和malloc的區別,new會分配記憶體,並呼叫類的建構函式建立物件,而malloc只是分配記憶體,不呼叫類的建構函式建立物件,這個程式應該用delete p1;顯示釋放掉p1所指的堆上的記憶體,這樣才會呼叫類的析構函式,否則不會呼叫。 牛客C 錯題筆記整理
動態繫結是物件導向程式設計語言中的一種機制。這種機制實現了方法的定義與具體的物件無關,而對方法的呼叫則可以關聯於具體的物件。物件導向有三種特性 封裝 繼承 多型。其中多型性有兩種,一種是依靠函式過載實現的靜態繫結,一種是依靠虛函式實現的動態繫結。c 中的純虛函式,下面說法均正確 子類中必須覆蓋基類的...
牛客 C翻轉(C )
首先輸入乙個5 5的陣列,然後輸入一行,這一行有四個數,前兩個代表操作型別,後兩個數x y代表需運算元據為以x y為左上角的那幾個資料。操作型別有四種 1 2 表示 90度,順時針,翻轉4個數 1 3 表示 90度,順時針,翻轉9個數 2 2 表示 90度,逆時針,翻轉4個數 2 3 表示 90度,...
牛客網刷題筆記 c 篇
1 if a b c 的判斷是先判斷 a b 若為真值為1否則為 1,再將1或 1與c做比較。雖然這樣的寫法較少,但不會編譯出錯。2 構造異質鍊錶的意義是用抽象類指標構造類物件鍊錶。在實際中,很多場景都要用鍊錶來管理不同型別的物件 結點,這樣的鍊錶叫異質鍊錶,如果將這些不同型別的物件用鍊錶進行直接鏈...