C 複習(繼承,運算子)

2021-08-26 13:25:22 字數 2363 閱讀 5780

----------------------繼承: ,,,,(俺要主攻uc,還要回珠海工作)

1.子類繼承父類方式:1.public 2.protected 3.private

通過public繼承下來的,都不變

通過protected繼承下來的,原有父類的public函式,將轉化為protected來繼承。

通過private繼承下來的,原有父類的public ,protected 函式,將轉化為private來繼承。

2.son類同名函式會覆蓋掉父類的所有同名的函式,應為過載僅僅限於同一作用域內

3 . 四大函式:構造,拷貝構造,析構,賦值函式operator=,是不允許被繼承,每個類都有自己的四大函式。

4. 虛繼承會由最底層的子類來完成虛父類的初始化工作,中間類的對父類的初始化將被無視。(避免多個副本存在,空間的浪費)

5. 類也一樣有記憶體空間的對齊。空類,則有1個位元組表示存在。虛類隱士生成乙個虛指標,所以至少有4個位元組的存在空間。

6. 多個同類物件在類的內部可以互相呼叫,而不受限制約束。

7. 繼承之後子類仍然有空間去存父類的繼承下類的private成員,因為他會通過public函式訪問到。

---------------------運算子過載等

1.static 成員不能在構造中初始化,因為是共享的所以要全域性區域初始化(不加static的宣告::)

2 . 構造(普通,拷貝)都支援初始化列表,且系統預設的都是淺拷貝,如果存在指標成員,那麼我們必須重寫四大函式

(1建構函式:用來開闢空間 (2拷貝構造:用來進行深度拷貝(3賦值函式operator=用來進行深度拷貝 (4析構函式:用於釋放空間(多型要變成virtual)

3. cwj cwj1=cwj2;//這東東呼叫的不是operator=函式,而是「拷貝建構函式」

4. c++單向傳參用:const & c++雙向傳參用:&(一直這樣用)

5. 唯讀物件只是不能訪問會改變資料的函式罷了,其他都一樣。 static物件只是作用區域放大了,其他的都一樣。const函式不能改變資料,static函式不能訪問非static資料成員。 bool (&geta() cosnt)[3]{}

6. bzero(a,sizeof(a)); memset(a,0,sizeof(a)); memcpy(a,4);malloc(2) calloc(3)-->memset()//給了空間就要memeset.

7. 指標作為返回值,是4個位元組的拷貝,而char作為返回值是1個位元組的拷貝,int float 也是4,所以不是什麼東東都搞成指標返回才快,char就最快,int float和指標一樣快。

8. 運算父過載,如果是friend << >> ,那麼其呼叫順序是根據(ostream& o,istring s)佐值由o充當,右值由s充當。順序 不能反了哦。

9. void* operator new(size_t byets)//void* malloc(size_t bytes);

void operator delete(size_t bytes)//void free(void *p);realloc(str,25)

呼叫的是系統的全域性函式new delete new delete運算子函式d

10.operator int()//強制型別轉換過載是不需要返回值的,僅此一家而已。其他都是要返回值。這樣了,我們就可以把物件當作int來使用了,他能夠自動隱飾轉換滴,因為有了這個int()過載。

11. 注意:存在指標成員的類,構造的時候請務必先:data(null)設為null值,以免野指標,破壞資料。(每個構造最好都要,保險)

如果存在陣列,那麼我們也bzero(陣列,sizeof(陣列)),初始化為0

出錯:在寫string類的時候,居然報了段錯誤:因為我拷貝建構函式忘記了初始化:data(null)了,這樣就是野指標,估計指向不能釋放的空間了,所以報錯。察!記住

12. 存在指標成員的類,如果沒有過載=函式,那麼使用了=,則可能會2次釋放該指標空間,所以段錯誤。

13 *this不是區域性變數,所以可以返回。

14 realloc(str,25)//重新在原空間基礎上調整空間大小,之後原有的空間資料依舊存在著。

15 結構體中,即使是陣列,如果能平湊的話,也是會去拼的。

16 extern "c"{} 指明了使用c的編譯方式來編譯該段**。

17 經常出錯: 總是不經意間去改變常量位址的空間,要知道:常量是不可變的。 char* p="123";realloc(p,150);會報錯,因為你想改變常量空間。

18. 引用型別的返回必須指向的是全域性空間。因為引用相當於指標。*this不是區域性的。是他自己。

19. c++前規則:普通的值傳參使用const & ,指標的傳參使用& .都已經成為了c++的前規則了。

花了乙個上午,終於複習完了c++了,下午搞c.哈哈。爽!!!!!!!!!!!

C語言複習2 運算子

今天覆習一下c語言的運算子 單等號 順序是 從右往左 include include intmain 輸出結果是 2 int num1 5,num2 2 double result1,result2,result3,result4 result1 num1 num2 result2 num1 num...

c 語言的位運算子複習

和修正,原文連線 位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制...

Java複習(五)運算子

單目 取正 取負 自增1 自減1 雙目 取餘 三目 a b?true false 說明 當a大於b的時候,為true 也就是冒號之前的值 否則為false 這整個運算子包括乙個關係運算子 可以是 加法 11 減法 1 乘法 30 除法 取整 1 取餘 1 result 6 i 2 result 7 ...