中科海訊 C++初級研發工程師筆試題目

  1. C++語言中的`const`關鍵字有什么作用?為什么要使用`const`關鍵字?

1 const修飾的變量將會被放到常量區,避免被意外的改動。

const修飾的常量比#define修飾的有更多的優勢,比如可以調試,類型檢查等

2 const修飾的參數可做輸入型參數

對于const指針類型,可以避免修改,而如果是const引用類型可以省去臨時對象的構造和析構過程,提高效率

3 const修飾返回值

如果你不希望返回值被修改,可以用const修飾返回值

4 const修飾成員函數

對于類中不會修改成員變量的成員函數,可以聲明為const成員函數

2. C++語言中的類有什么作用?

類體現了C++面向對象的特點。

類的基本思想在于抽象和封裝。

數據抽象是一種依賴于接口和實現分離的技術。類的實現包括類的數據成員,負責接口實現的函數體以及定義類所需的各種私有函數。

數據抽象之和我們就可以就行復用。進而實現繼承、多態

而封裝則是實現了類的接口和實現的分離,隱藏實現細節。

我可以舉個操作系統的例子:

操作系統對下管理軟硬件資源,而對上為用戶、程序員提供良好的服務。而對下管理硬件的時候,看似不同的硬件實際上都有讀寫文件的方法。結合Linux系統一切皆文件的思想下,我們只需實現出struct file類,再實現多態,就能封裝成不同的硬件了。在struct file這一層,所有外設就沒有硬件的差別了。

3. C++語言中類的繼承有什么作用?在什么場景下應該使用類的繼承?

繼承允許我們以基類的方式來實現派生類。

繼承的使用一般會和組合一起討論。組合是一種復用關系。組合之間的依賴關系不強,耦合度低;而繼承是一種耦合度高的方案,繼承一定程度上破壞了封裝。

我們推薦多使用組合,但是當多種子類擁有共同的特征時,我們還是

可以使用繼承,而且,如果要實現多態,必須使用繼承

4. 全局變量的定義是否可以放在.h文件里?

全局變量的定義不能放到頭文件里,如果頭文件被多個.c/.cpp文件包含,就會生成多份,最后導致多重定義的錯誤

5. 什么是編譯?什么是鏈接?

在ANSIC中我們的程序會經歷會通過翻譯環境、運行環境兩種

其中翻譯環境就有兩個步驟:編譯、鏈接

編譯階段分又為三個階段:預處理,編譯,匯編

預處理主要做4個事:去注釋,宏替換,頭文件展開,條件編譯。然后我們的 .c/.cpp文件會變成 .i文件

編譯會進行語法分析、詞法分析、語義匯總、符號匯總等。我們的代碼就轉成了匯編代碼,然后我們的 .i文件會變成 .s文件

匯編階段會將上一步的匯編代碼轉成二進制代碼。并生成符號表。然后我們的 .s文件會變成格式為elf的 .o文件

鏈接階段主要進行合并段表和符號表的合并和重定位

.o文件是elf格式的,會分為很多段,合并段表就是把相同的段合并到一起

6. 你最近在讀哪些(技術有關)書?或你最近在研究哪些和技術有關的內容?

我最近在看兩本書,一本是《Effective C++》,這本書為C++程序員提供了一系列實用的建議和技巧,幫助他們在編寫高效、健壯和易于維護的代碼時避免常見的陷阱和錯誤;

另一本是《STL源碼剖析》,侯捷老師的講解生動、細致、全面,對我理解STL的底層非常有幫助。

注意:

  1. ?允許合理使用搜索引擎,允許查閱書籍與網絡上的公開資料。
  2. ?題目內容要求獨立完成,不允許由他人代答,不允許使用AI生成回答。
  3. ?本題目限時1小時。

(掛了竟然,沒想到)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42802.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42802.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42802.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java集合面試題

Java集合框架 1、List、Set、Map的區別2、ArrayList、LinkedList、Vector區別3、為什么數組索引從0開始,而不是從1開始?4、ArrayList底層的實現原理5、紅黑樹、散列表6、HashMap的底層原理7、HashMap的put方法具體流程8、HashMap的擴容機制9、HashMap是怎…

南方科技大學馬永勝教授給年輕人使用AI工具上的建議

摘要 - 1. AI的未來,是機器人和機器人之間的合作; 2. 行業的發展方向是需求決定的,不要做同質化的發展,要做專/精/特/新; 3. 新質生產力 ( 科學技術革命性突破 生產要素創新型配置 產業深度轉型升級&…

java通過poi-tl導出word實戰詳細步驟

文章目錄 與其他模版引擎對比1.引入maven依賴包2.新建Word文檔exportWprd.docx模版3.編寫導出word接口代碼4.導出成果 poi-tl是一個基于Apache POI的Word模板引擎,也是一個免費開源的Java類庫,你可以非常方便的加入到你的項目中,并且擁有著讓…

貪心算法-以高校教材管理系統為例

1.貪心算法介紹 1.算法思路 貪心算法的基本思路是從問題的某一個初始解出發一步一步地進行,根據某個優化測度,每一 步都要確保能獲得局部最優解。每一步只考慮一 個數據,其選取應該滿足局部優化的條件。若下 一個數據和部分最優解連在一起…

Pix4Dmapper:無人機測繪的革命性工具

在現代測繪和地理信息系統(GIS)領域,Pix4Dmapper無疑是一款革命性的工具。作為一名長期使用這款軟件的用戶,我深深感受到它在工作中的重要性和便利性。Pix4Dmapper不僅僅是一款軟件,更是測繪工作者的得力助手&#xff…

285個地級市出口產品質量及技術復雜度(2011-2021年)

出口產品質量與技術復雜度:衡量國家競爭力的關鍵指標 出口產品質量是衡量國內企業生產的產品在國際市場上競爭力的重要標準。它不僅要求產品符合國際標準和目標市場的法律法規,而且需要保證產品質量的穩定性和可靠性。而出口技術復雜度則進一步體現了一…

新一代信息技術及應用

關于云計算的描述不正確的是( )。 A 云計算可以通過網絡連接,用戶通過網絡接入“云”中并獲得有關的服務,“云”內節點之間也通過內部的網絡相連 B 云計算可以快速、按需、彈性服務,用戶可以按照實際需求迅速獲取或釋放…

[Python學習篇] Python面向對象——類

面向對象是什么? 面向對象(Object-Oriented Programming,簡稱OOP)是一種編程范式,它使用“對象”來設計應用程序和計算機程序。OOP的核心概念包括類(Class)、對象(Object&#xff09…

批量下載手機中APP程序中文件

需求 利用 adb pull 下載手機中app的某目錄 adb pull 命令本身不支持直接下載整個目錄(文件夾)及其所有子目錄和文件作為一個單一的操作。但是,可以通過一些方法來間接實現這一目的。 方法 1. 首先將要下載的目錄進行 tar 打包 # 在 And…

Python面試題:Python 中的 `property` 函數有什么用?

在 Python 中,property 函數用于創建和管理類中的屬性。它允許你將方法轉換為屬性,這樣你可以像訪問變量一樣訪問這些方法。這對于控制屬性的訪問和修改非常有用,因為它允許你在屬性訪問時執行額外的邏輯(如驗證或計算&#xff09…

光通信領域常見的會議和期刊總結

在高速光通信小組待了一年,對我們領域主要的會議和期刊也有了一定的了解,所以總結一下我們可以投的期刊或會議有哪些。會議一般有OFC、ECOC、CLEO、OECC、ACP等,期刊則有OE、OL、PTL、JLT、PJ、AO、JOSA等,下面簡單介紹一下。 先…

【atcoder】習題——位元枚舉

題意:求i&M的popcount的和,i屬于0……N 主要思路還是變加為乘。 舉個例子N22,即10110 假設M的第3位是1,分析N中: 00110 00111 00100 00101 發現其實等價于 0010 0011 0000 0001 也就是左邊第4位和第5…

算法學習筆記(8.1)-動態規劃入門

目錄 問題特性: 最優子結構: 代碼示例:(動態規劃最優子結構) 上述最小代價爬樓梯的運行過程: 代碼示例: 無后效性: 解析: 具體過程圖示如下: 具體的…

如何為IP申請SSL證書

目錄 以下是如何輕松為IP地址申請SSL證書的詳細步驟: 申請IP證書的基本條件: 申請IP SSL證書的方式: 確保網絡通信安全的核心要素之一,是有效利用SSL證書來加密數據傳輸,特別是對于那些直接通過IP地址訪問的資源。I…

使用 Azure DevOps Pipelines 生成 .NET Core WebJob 控制臺應用 CI/CD

Web 應用程序通常需要作為后臺任務運行的進程,并在特定時間間隔進行計劃或在事件中觸發。它們不需要花哨的 IO 接口,因為重點是過程而不是輸出。Azure WebJobs 提供了出色的支持,通常在云環境中通過 Web 控制臺應用程序來實現此目的。WebJob …

企業數字化轉型中的低代碼開發平臺應用:釋放創新潛能

隨著信息技術的飛速發展,企業數字化轉型已成為行業趨勢。在這場轉型浪潮中,低代碼開發平臺以其獨特的優勢,成為眾多企業實現快速迭代、高效創新的得力助手。本文將深入探討低代碼開發平臺在企業數字化轉型中的應用,以及如何幫助企…

Mac平臺虛擬機 Parallels Desktop v19.4.1,支持M1/M2/M3芯片組

Parallels Desktop for Mac是功能強大靈活度高的虛擬化方案,無需重啟即可在同一臺電腦上隨時訪問Windows和Mac兩個系統上的眾多應用程序。從僅限于PC的游戲到生產力軟件,Parallels Desktop都能幫您實現便捷使用。Parallels Desktop 是一款專業的Mac虛擬機…

Docker搭建kafka+zookeeper以及Springboot集成kafka快速入門

參考文章 【Docker安裝部署KafkaZookeeper詳細教程】_linux arm docker安裝kafka-CSDN博客 Docker搭建kafkazookeeper 打開我們的docker的鏡像源配置 vim /etc/docker/daemon.json 配置 { "registry-mirrors": ["https://widlhm9p.mirror.aliyuncs.com"…

vue父子組件通信實現模糊搜索功能

我遇到的問題: 我的搜索框在父頁面,靜態數據都在子頁面。怎么實現模糊查詢數據? 昨天的嘗試:先把搜索的內容數據存到session里,然后從session里拿, 結果:存是存進去了,卻拿不到。應…

Django學習收尾

啟動項目命令 python manage.py runserver 文件上傳功能實現 title "Form上傳"if request.method "GET":form UpForm()return render(request, upload_form.html, {"form": form, "title": title})form UpForm(datarequest.POS…