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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

金山WPS面经 c++开发工程师

發布時間:2023/12/20 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 金山WPS面经 c++开发工程师 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 虛函數的底層實現:虛函數表和虛函數指針
  • 構造函數和析構函數能不能調用虛函數
不能https://blog.csdn.net/u012611878/article/details/78956329
  • 四種強制類型轉換
    四種強制類型轉換
static_cast主要用于“低風險”的類型轉換,如整數、浮點數和字符類型的轉換reinterpret_cast各種不同類型的指針之間、不同類型的引用之間以及指針和能容 納指針的整數之間的轉換; 卻不保證安全性const_cast運算符主要是為了去除const屬性dynamic_cast專門用于將多態基類類型的指針強制轉換為派生類類型的指針,而且 能夠檢查轉換的安全性,對于不安全的轉換,返回一個nullptr
  • c++11為什么要新增四種強制類型轉換?
強制類型轉換具有一定風險,如:把整型轉換為指針類型、將基類 指針轉換為派生類指針、將一種函數指針轉換為另一種函數指針, 將常量指針轉換為非常量指針等。C++新引用四種強制類型轉換主要是為了**規避這種風險**:a.int轉換為double是沒有風險的,而將常量指針轉換為非常量指針,將int轉換為指針類型都是高風險的,C中并未對這兩種情況作區分b. 將多態的基類指針轉換為派生類指針時并不檢查安全性,無法判斷轉換后的指針是否指向一個派生類對象c. 如果強制類型轉換出錯,很難排查出錯誤
  • 什么時候會用拷貝構造,什么時候用賦值構造
在C++中,下面三種對象需要調用拷貝構造函數(有時也稱“復制構造函數”):1) 一個對象作為函數參數,以值傳遞的方式傳入函數體;2) 一個對象作為函數返回值,以值傳遞的方式從函數返回;3) 一個對象用于給另外一個對象進行初始化(常稱為復制初始化);String a("hello"); String b("world"); String c = a; // 調用了拷貝構造函數,最好寫成 c(a); c = b; // 調用了賦值構造函數
  • 移動構造
**https://blog.csdn.net/zyq11223/article/details/48766515有時候我們會遇到這樣一種情況,我們用對象a初始化對象b,后對象a我們就不在使用了,但是對象a的空間還在呀(在析構之前),既然拷貝構造函數,實際上就是把a對象的內容復制一份到b中,那么為什么我們不能直接使用a的空間呢?這樣就避免了新的空間的分配,大大降低了構造的成本。這就是移動構造函數設計的初衷。下面這個圖,很好地說明了拷貝構造函數和移動構造函數的區別。移動構造是一份;拷貝構造是兩份;** IntNum(IntNum && n):xptr(n.xptr){//移動構造函數n.xptr = nullptr; //原來指針null后,便可以淺層復制cout<<"Calling move constructor..."<<endl; }

總結

以上是生活随笔為你收集整理的金山WPS面经 c++开发工程师的全部內容,希望文章能夠幫你解決所遇到的問題。

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