牛客 C 刷題day25

2022-08-09 05:57:13 字數 684 閱讀 2127

1.在乙個物件未建立起來時通常用的是拷貝建構函式,而物件建立起來之後的複製拷貝就需要使用賦值運算子過載了。

拷貝建構函式形式如下:

cexample(const cexample& c) 就是我們自定義的拷貝建構函式。可見,拷貝建構函式是一種特殊的建構函式,函式的名稱必須和類名稱一致,它必須的乙個引數是本型別的乙個引用變數

呼叫場合有:當函式的引數為類的物件時;函式的返回值是類的物件;物件需要通過另外乙個物件進行初始化。

拷貝建構函式時預設淺拷貝,即只對新物件的值進行簡單複製。而深拷貝則需要更為複雜的操作,簡單賦值並不能解決問題。比如a中有int *p=new int(100)。

賦給b時則不能簡單的b.p=a.p應該是需要在b中重新進行new操作。這就是深淺的區別。

還有一點,系統可以幫我們自動進行淺拷貝比如 class a(b)。這樣的操作。即使class中沒有拷貝建構函式的定義,我們也仍然可以達到目的。

2.在計算機中,表示漢字時,utf-16是用2個位元組,utf-8是用三個位元組。如果儲存成文字檔案,還需要標識,utf-16占用兩個位元組,utf-8占用三個位元組。

牛客 C 刷題day47

1.不能認為是原子操作,a是全域性變數,在記憶體中,則 a一般被分為從記憶體取a到暫存器 回寫到記憶體三步.兩個執行緒併發執行以下 假設a是全域性變數,那麼以下輸出 哪個是可能的?int a 1 void foo 解析假設執行緒x和y同時執行,x和y可隨時被搶占,a的初始值為1 a 3,2 y先執行...

牛客 C 刷題day13

1 復合語句也被稱為語句塊,它至少要包含兩條語句 但是你不妨在語句裡寫個空也行,只不過這種操作必然會被編譯器過濾掉 2 死 死 的英文是dead code。是指在程式操作過程中永遠不可能被執行到的 通過aqtime覆蓋率的分析就可以發現所有的永遠都不會執行到的 但是與程式無關的 卻不一定能夠全部發現...

牛客網C 刷題

今天刷了些c 的題,就其中物件導向分享一下我的感悟。首先區分一下物件導向和面向過程 物件導向是首先抽象出各種物件 各種類 把資料和方法都封裝在物件中 類 然後各個物件之間發生相互作用。面向過程是將問題分解成若干步驟 動作 每個步驟 動作 用乙個函式來實現,在使用的時候,將資料傳遞給這些函式。stl有...