C 幾種型別的new介紹

2021-09-24 18:32:20 字數 921 閱讀 8058

現在的c++中,new有三種典型的使用方法,對應於下面三種格式。

1.new : 普通的new操作,一旦記憶體分配失敗,直接丟擲乙個異常,需要用catch來處理這種異常資訊。
2. new(nothrow) : 不丟擲異常的new操作, 一旦記憶體分配失敗,禁止丟擲異常,而是返回乙個null,可以通過判斷指標是不是null來處理這種異常。
3. placement new : 直接復用已經分配好記憶體的指標的new操作,該操作只是會呼叫建構函式,將這部分記憶體重新做初始化操作。
例子如下所示:

函式func1()裡面的 a==null可以捕獲記憶體分配失敗的場景。

函式func2(), a==null 並不能起到保護記憶體分配失敗的場景,需要用catch來處理。

函式func3(),placement new操作之後,b的位址與a的位址是一致的,只不過b重新做了這部分記憶體的初始化操作。

程式執行結果如下所示:

Redis介紹及幾種型別

高併發,高可擴,高效能 為什麼可以解決高併發情況下的秒殺,而且在 中沒有看到任何的鎖?它是乙個單執行緒的服務。多執行緒 cpu上下文切換 一定比單執行緒快?錯 redis是單執行緒服務,那麼redis服務裡面是不是只有乙個執行緒?錯 單執行緒代表的時候處理命令或者指令的時候,後台只有乙個處理指令執行...

C 繼承的幾種型別

一.重用 包含 新的類將包含另乙個類的物件 has a 二.繼承的幾種型別 公有繼承 基類的公有方法將成為派生類的公有方法,總之,派生類將繼承基類的介面 is a關係 私有繼承 基類的公有方法將成為派生類的私有方法,總之,派生類不繼承基類的介面 獲得實現,但不獲得介面。has a關係 多重繼承 cl...

C 幾種型別轉換的例子

1.int,float,byte,char型別數值強制相互轉換 方法 byte dat1 int dat2 1000 dat1 byte dat2 數值取整模256,最後值為0xe8 dat2 int dat1 最後值為0xe8 byte dat1 float dat2 123.44 dat1 by...