日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用malloc初始化一个类和new初始化一个类的区别

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用malloc初始化一个类和new初始化一个类的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

new出來對象會調用對象的構造函數,但是malloc出來的對象是沒有調用構造函數的,因此下面使用malloc初始化的對象私有變量是沒有經過構造函數初始化的但是通過new出來的對象,對象已經經過構造函數的初始化。

// // Created by andrew on 2021/3/8. // #include <iostream> #include <string>using namespace std;class MallocClass { private:string _valor; public:MallocClass() {_valor = "Malloc_test";}const string &get() const {return _valor;}void set(const string &valor) { this->_valor = valor;} };int main(int argc, char ** argv) {auto * mallocClass = (MallocClass*)malloc(sizeof(MallocClass)); // 輸出為空,說明malloc申請的對象是沒有調用構造函數cout << mallocClass->get() << endl;mallocClass->set("set");free(mallocClass);cout << "class malloc end ==============" << endl;auto *mallocClass1 = new MallocClass;cout << mallocClass1->get() << endl;return 0; }

可以看出new出來的對象私有變量是經過初始化的,malloc

輸出結果:

/work/achou-leetcode/cmake-build-debug/testclass malloc end ============== Malloc_testProcess finished with exit code 0

總結

以上是生活随笔為你收集整理的使用malloc初始化一个类和new初始化一个类的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。