【C++】--入門

前面我們學習C語言的時候,我們也有講過C++的部分歷史,我們看其名字就知道其和我們的C語言肯定是有密不可分的關系的,我們的C++是在C的基礎上發展的,其彌補了C語?在表達能?、可維護性 和可擴展性??的不?。

下面為C++的近年來的幾次更新:

?其在前面的時候,我們會發現其是五年一個更新,不過我們發現在C++11的版本后,其又變成了3年一個更新。這是因為在后面其對于一些功能的優化和實現變得越來越復雜,后面C++團隊就從變成了,三年一個更新。

一、C++的第一個程序

前面我們剛剛開始學習C語言的時候,我們的第一個程序是在屏幕上打印Hello? world,下面我們也一樣使用C++在屏幕上實現這個功能。

下面我們將C語言和C++的都實現一遍,然后我們來看看這兩個語言的區別。

代碼如下:

我們發現其要在屏幕上打印Hello world代碼還是有很大差異的,首先就是其多了using namepace std;語句,然后其是使用的cout來進行打印的。對于這幾個不同的我們下面會進行詳細的講解。

這里我們要知道的是:

C++兼容C語?絕?多數的語法,所以C語?實現的hello world依舊可以運?,C++中需要把定義?件 代碼后綴改為.cpp,vs編譯器看到是.cpp就會調?C++編譯器編譯,linux下要?g++編譯,不再是gcc。

二、命名空間

?1、namespace的意義

在C\C++中,變量、函數和后面我們要學到的類都是大量存在的,這些變量、函數、和類的名稱將都存在于全局作用域中、那么就可能會導致我們的名稱會有重復的,我們使用命名空間的目的是對標識符的名稱進行進行本地化,以避免命名沖突或命名污染,namespace的出現就是為了解決這個問題的。

如下:

我們運行這個代碼,那么程序就會報錯,這是因為頭文件stdlid.h中有一個函數名為rand的函數,那么我們定義的全局變量就和這個函數的名字沖突了,導致的無法編譯。

那么當我們將這個頭文件去掉后,那么我們就可以順利的在屏幕上將10打印出來了。

2、namespace的定義

  • 定義命名空間需要用到namespace關鍵字,然后后面跟命名空間的名字,然后接上一對{}即可,{}中即為命名空間中的成員。命名空間中可以定義變量\函數\類型等。
  • namespace本質上是一個域,這個域和全局域是獨立的,不同的域可以定義同名變量。
  • C++中域有函數局部域,全局域,命名空間域,類型;域影響的是編譯的時候語法查找一個變量\函數\類型出處(聲明或定義)的邏輯,所以有了域隔離,那么名字沖突就解決了。局部域和全局域除了會影響編譯查處邏輯,還會影響變量的生命周期,命名空間和類域不影響變量生命周期。
  • namespace只能定義在全局,,當然其還可以嵌套定義。
  • 項目工程中多文件中定義的同名namespace會認為其是一個namespace,不會沖突
  • C++標準庫都放在一個叫std的命名空間中

3、命名空間的使用

上面我們學習了命名空間的定義,那么我們定義好一個命名空間后,我們要如何進行使用呢?

1、指定命名空間訪問,項目中我們推薦使用這種方式

如下:

2、using將命名空間中某個成員展開,項目中經常訪問的不存在沖突的成員推薦使用這種方式。

如下:

?

相當于函數的聲明一樣,告訴編譯器我們代碼中有這個東西。

3、展開命名空間中的所有成員,項目中不推薦這種方式,容易產生沖突,日常的練習和程序還可以使用。

?

?三、C++輸入和輸出

?首先我們的C++是兼容C的大部分語法的,所以我們在C++中也可以通過包含其頭文件調用C語言中的庫函數。

然后我們的C++其也有屬于其自己的輸入輸出方式:

1、使用cout標準輸出對象,和cin標準輸入對象,要注意的是我們要使用這兩個標準輸出輸入流,必須要包含頭文件,還有按命名空間使用方法包含std。

2、cout 和 cin 是全局的流對象,endl 是特殊的C++符號,表示換行輸出,他們都包含在包含

? ? iostream 頭文件中。

3、<<是流插入運算符,>>是流提取運算符

4、使用C++的cout和cin會比C語言的printf和scanf要方便一點,我們不需要再去使用占位符確定輸出和輸入的數據類型,cout和cin其會自動識別這些數據是什么類型的。

5、在一些算法競賽中,如果要經常進行數據的輸入和輸出的話,那么我們推薦使用C語言的printf和scanf,后面我們會講到。

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

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

相關文章

JAVA內存區域劃分

根據《JAVA虛擬機規范》的規定&#xff0c;JAVA虛擬機在執行JAVA程序的過程中會把內存劃分為不同的數據區域。不同類型的數據會存儲在不同的區域&#xff0c;理解JAVA內存區域的工作細節對理解JAVA多線程、線程安全性有著重要意義。 注意&#xff0c;JAVA內存區域的劃分與我們…

Navicat 導入 SQL 文件

1. 安裝并打開 Navicat 安裝 Navicat&#xff08;如 Navicat Premium、Navicat for MySQL&#xff09;&#xff0c;百度或者淘寶就有很多破解版。 打開 Navicat&#xff0c;進入主界面。 2. 新建數據庫連接 點擊左上角 “連接” 按鈕&#xff0c;選擇你對應的數據庫類型&…

《Go語言高級編程》玩轉RPC

《Go語言高級編程》玩轉RPC 一、客戶端 RPC 實現原理&#xff1a;異步調用機制 Go 的 RPC 客戶端支持同步和異步調用&#xff0c;核心在于 Client.Go 方法的實現&#xff1a; 1. 同步調用&#xff08;Client.Call&#xff09;的本質 func (client *Client) Call(serviceMet…

四大核心要素驅動汽車智能化創新與相關芯片競爭格局

作者&#xff1a;北京華興萬邦管理咨詢有限公司 翔煜 商瑞 智能汽車時代的加速到來&#xff0c;使車載智能系統面臨前所未有的算力需求。隨著越來越多車型引入電子電氣架構轉向中心化、智能駕駛的多傳感器融合、智能座艙的多模態交互以及生成式AI驅動的虛擬助手等創新技術&a…

照明新基建:塔能科技如何用數字骨骼支撐智慧城市生長

一、能源管理困局&#xff1a;雙碳目標下的市政用電痛點 在雙碳背景下&#xff0c;城市照明用電量已引起市政部門的重點關注。據國家統計局統計&#xff1a;我國城市照明用電量已占據全市城市用電量的28%&#xff0c;部分城市的照明用電量已高達35%以上&#xff0c;高壓鈉燈傳統…

讓Claude Code像Cursor一樣好用

最近折騰AI工具&#xff0c;發現Claude Code真是個寶藏。但說實話&#xff0c;初學者一上手&#xff0c;十有八九會被命令行那一堆黑框框勸退。你以為你用熟了&#xff1f;其實你只解鎖了Claude Code不到20%的威力&#xff0c;剩下的80%都藏在命令行背后的“黑魔法”里。00后誰…

ROS 2 中更改從設備(如電機控制器)的運動模式

在 ROS 2 中更改從設備&#xff08;如電機控制器&#xff09;的運動模式&#xff08;例如從位置模式切換到速度模式&#xff09;&#xff0c;需要通過操作模式&#xff08;Mode of Operation&#xff0c;對應對象字典索引0x6060&#xff09; 進行設置。結合你的配置&#xff08…

樸素貝葉斯分類

一、樸素貝葉斯算法概述 樸素貝葉斯(Naive Bayes)是一種基于貝葉斯定理的簡單概率分類算法&#xff0c;它假設特征之間相互獨立&#xff08;"樸素"的含義&#xff09;。盡管這個假設在現實中很少成立&#xff0c;但該算法在許多實際應用中表現優異&#xff0c;特別是…

python協程:yield實現協程執行、生成器取值的三種方式

yield關鍵字執行流程 注意&#xff1a;yield關鍵字的調用次數如果超過了任務執行次數會報錯&#xff0c;提示stopiteration異常&#xff0c;例如 正常范圍內的任務執行 # 定義一個任務&#xff08;函數1&#xff09; def task1():for i in range(3):print(f----task1 i {i}-…

pdf刪除一頁 python實現(已驗證)

首先安裝庫 使用PyPDF2 首先&#xff0c;確保你已經安裝了PyPDF2。如果沒有安裝&#xff0c;可以通過pip安裝&#xff1a; pip install PyPDF2 然后運行 import PyPDF2def remove_page(input_pdf_path, output_pdf_path, page_number_to_remove):# 打開PDF文件with open(i…

2025.1版本PyCharam找不到已存在的conda虛擬環境

前言 創建Python項目指定conda虛擬環境是最常用的操作,我下載的2025.1版本PyCharam編譯器找不到我已經創建好的conda虛擬環境,解決方法如下 目錄 問題描述 問題解決 總結 問題描述 我使用2025.1版本PyCharam編譯器創建項目指定已經存在的虛擬環境出現如下情景 說是我沒有…

開機啟動項在哪里設置 實用步驟分享

電腦開機時&#xff0c;系統會自動運行一系列程序&#xff0c;其中包括必要的系統進程和用戶自行添加的啟動項。然而&#xff0c;過多的啟動項可能會導致開機速度變慢&#xff0c;影響系統性能。因此&#xff0c;合理管理開機啟動項&#xff0c;可以優化電腦的運行效率。電腦開…

LeetCode--39.組合總和

前引&#xff1a;明天就考最后一趟考試&#xff0c;最近考試周&#xff0c;我時時斷更&#xff0c;從明天開始&#xff0c;就會一直更新了&#xff0c;可以期待一下 解題思路&#xff1a; 1.獲取信息&#xff1a; 給定一個無重復的整數數組和一個目標值 從數組中選取任意數量的…

Visual Studio2022和C++opencv的配置保姆級教程

1.c桌面開發和windows平臺開發&#xff08;Visual Studio2022安裝時&#xff09; 2.下載OPenCV 3.系統屬性→添加環境變量→Path 4.VS2022配置opencv 5.項目→屬性→VC目錄中的包含目錄和庫目錄 5.項目→屬性→VC目錄中的包含目錄和庫目錄 包含 目錄添加&#xff1a; D:\…

使用Ansible的playbook安裝HTTP

實驗環境 安裝好ansible 一、準備測試服務&#xff08;192.168.10.41&#xff09; 1、安裝HTTP服務 dnf -y install httpd 2、啟動HTTP服務 systemctl start httpd 3、使用瀏覽器訪問 192.168.10.41 因為開啟了防火墻&#xff0c;所有無法訪問 4、開放防火墻的80端口 …

V少JS基礎班之第六彈

一、 前言 第六彈內容是閉包。 距離上次函數的發布已經過去了一個多月&#xff0c; 最近事情比較多&#xff0c;很少有時間去寫文章&#xff0c; 低質量還得保證所以本章放草稿箱一個月了&#xff0c;終于補齊了&#xff0c;其實還有很多細節要展開說明&#xff0c;想著拖太久…

【面板數據】全國高頻交易明細數據(2000-2024.7)

中國土地交易市場作為國家宏觀調控的重要組成部分&#xff0c;其通過市場機制&#xff0c;使土地使用權在不同主體間流轉&#xff0c;將土地資源配置給最具利用效率的部門或企業&#xff0c;提升土地利用率和經濟產出。中國土地高頻交易明細數據匯集了全國范圍內2000-2024年7月…

MongoDB 常用增刪改查方法及示例

MongoDB 的增刪改查&#xff08;CRUD&#xff09;操作是其核心功能&#xff0c;主要通過 mongo shell 或驅動&#xff08;如 Node.js、Python 等&#xff09;實現。以下是最常用操作的詳細說明及示例&#xff08;基于 mongo shell 語法&#xff09;。 ?一、插入操作&#xff…

moodle升級(4.5到5.0)

升級目標 由Moodle 4.5 (Build: 20241129) 升級到Moodle 5.0.1 (Build: 20250629) 參考教程&#xff1a;moodle升級&#xff08;詳細版&#xff09;-CSDN博客 操作平臺&#xff1a;寶塔 通過寶塔進行備份 備份文件 將/www/wwwroot/moodle 和/www/wwwroot/moodledata 復制…

基于Apache POI實現百度POI分類快速導入PostgreSQL數據庫實戰

## 引言:POI數據的價值與挑戰 POI(Point of Interest)數據作為地理信息系統的核心要素,在智慧城市、位置服務、商業分析等領域具有重要價值。百度POI數據包含了豐富的地點信息(如名稱、類別、坐標等),但如何高效處理這些數據并將其導入數據庫進行分析是開發者面臨的挑戰…