【C++初階】與C相比,C++多出來簡單又好用的語法(命名空間、輸入輸出、缺省參數、函數重載)

文章目錄

  • 一、 C++的第一個代碼
    • 1、C++兼容C語言
    • 2、hello world 如何用C++語法來寫
  • 二、命名空間namespace
    • 1、為什么有命名空間
    • 2、定義
    • 3、命名空間的使用
    • 4、注意事項
  • 三、輸入輸出
  • 四、缺省參數
    • 1、定義
    • 2、注意
  • 五、函數重載
    • 1、定義
    • 2、使用
  • 六、謝謝觀看!

一、 C++的第一個代碼

1、C++兼容C語言

就像我們所熟知的第一段C語言代碼,“hello world”,其在C++編譯器下也可以運行。
注:C語言程序后綴為 .c ,而C++程序后綴為 .cpp
如下圖:
在這里插入圖片描述
這個C語言程序里面包含了 頭文件、主函數、返回類型。它在C++編譯器里面同樣能夠適用。
在C++文件中,我們同樣能夠使用C語言的語法,即C++兼容C語言。

2、hello world 如何用C++語法來寫

在這里插入圖片描述

#include <iostream>
using namespace std;
int main()
{cout << "hello world" << endl;return 0;
}

在講解這段代碼之前,我們需要知道下面的基礎語法。

二、命名空間namespace

1、為什么有命名空間

在C/C++中,變量、函數和后?要學到的類都是大量存在的,這些變量、函數和類的名稱將都存在于全局作用域中,可能會導致很多沖突。使用命名空間的目的是對標識符的名稱進行本地化,以避免命名沖突或名字污染,namespace關鍵字的出現就是針對這種問題的。
簡單來說,是用來減少命名沖突而造成程序錯誤的。

2、定義

其中,namespace是關鍵字,后面接命名空間的名字,在來一對花括號即可。{}中為命名空間的成員。

在這里插入圖片描述
命名空間中可以定義變量、函數、類型等。如下圖:

在這里插入圖片描述
命名空間的本質是定義一個域,根據不同的域里面的變量可以定義同名變量,來解決命名沖突。

3、命名空間的使用

編譯查找?個變量的聲明/定義時,默認只會在局部或者全局查找,不會到命名空間里面去查找。所以程序會編譯報錯。所以我們要使用命名空間中定義的變量/函數,有三種方式:
? 指定命名空間訪問,項目中推薦使用
在這里插入圖片描述
其中,::為域作用限定符

? using將命名空間中某個成員展開,項目中經常訪問的不存在沖突的成員推薦這種方式。
在這里插入圖片描述

? 展開命名空間中全部成員,項目不推薦,沖突風險很大,日常小練習程序為了方便推薦使用。
在這里插入圖片描述
由此,我們可知,以下這段代碼的第二行的意思為:展開命名空間std中的所有成員。
在這里插入圖片描述

4、注意事項

  • namespace只能定義在全局,也可以嵌套定義。
  • 項??程中多文件中定義的同名namespace會認為是?個namespace,不會沖突。
  • C++標準庫都放在?個叫std(standard)的命名空間中。
    C語言中的標準庫中是許多的函數。 而C++標準庫中,是由一個命名空間std給封裝起來的,其中又嵌套了一個又一個的命名空間。故在使用庫函數時,應該先展開要用的命名空間。

三、輸入輸出

  • < iostream> 是Input Output Stream 的縮寫,是標準的輸?、輸出流庫,定義了標準的輸入、輸出對象。 故,寫程序要包含這個庫。
  • std::cin 是 istream 類的對象,它主要面向窄字符(narrow characters (of type char))的標準輸入流。 在未展開std時,輸入應該寫為std::cin
  • std::cout 是 ostream 類的對象,它主要面向窄字符的標準輸出流。
  • std::endl 是?個函數,流插?輸出時,相當于插??個換行字符加刷新緩沖區。起換行作用。
  • <<是流插?運算符,>>是流提取運算符
    在這里插入圖片描述
    注:這里的輸入輸出可以自動識別變量的類型。也就是說,不需要指定變量的類型,就可以直接輸入輸出。
    在這里插入圖片描述
    也可以直接輸出字符或字符串。如下;
    在這里插入圖片描述

四、缺省參數

1、定義

缺省參數是聲明或定義函數時為函數的參數指定?個缺省值。在調用該函數時,如果沒有指定實參
則采用該形參的缺省值,否則使用指定的實參,缺省參數分為全缺省和半缺省參數。(有些地方把
缺省參數也叫默認參數)

在這里插入圖片描述

全缺省就是全部形參給缺省值,半缺省就是部分形參給缺省值。

在這里插入圖片描述
在這里插入圖片描述

2、注意

  • C++規定半缺省參數必須從右往左依次連續缺省,不能間隔跳躍給缺省值。
  • 帶缺省參數的函數調?,C++規定必須從左到右依次給實參,不能跳躍給實參。
  • 函數聲明和定義分離時,缺省參數不能在函數聲明和定義中同時出現,規定必須函數聲明給缺省值。

五、函數重載

1、定義

C++?持在同?作用域中出現同名函數,但是要求這些同名函數的形參不同,也可以是參數個數不同或者類型不同。這樣C++函數調用就表現出了多態行為,使用更靈活。而C語言是不支持同?作用域中出現同名函數的。

2、使用

使用函數重載,可以使代碼寫的更加舒暢。
在這里插入圖片描述

六、謝謝觀看!

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

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

相關文章

go mod 依賴管理補充2

依賴包的版本問題&#xff0c;別的開發語言有沒有類似的問題&#xff1f;是怎么解決的&#xff1f; 舉例&#xff1a;java java的依賴包的版本問題&#xff0c;通過Maven模塊來操作&#xff0c;可以指定依賴包版本號&#xff0c;如下&#xff1a; go.mod 文件 go.mod文件是G…

怎么用 matlab 設計滯后-超前串聯校正網絡

&#x1f3c6;本文收錄于「Bug調優」專欄&#xff0c;主要記錄項目實戰過程中的Bug之前因后果及提供真實有效的解決方案&#xff0c;希望能夠助你一臂之力&#xff0c;幫你早日登頂實現財富自由&#x1f680;&#xff1b;同時&#xff0c;歡迎大家關注&&收藏&&…

Java多態的理解

目錄 一、什么是多態 二、多態實現的條件 三、實例分析 四、多態應用之一&#xff08;多態數組&#xff09; 五、多態參數 一、什么是多態 在Java中&#xff0c;多態是面向對象編程中的一個重要概念&#xff0c;它允許不同類型的對象對同一方法進行不同的實現。具體來說&…

Kaggle網站免費算力使用,深度學習模型訓練

聲明&#xff1a; 本文主要內容為&#xff1a;kaggle網站數據集上傳&#xff0c;訓練模型下載、模型部署、提交后臺運行等教程。 1、賬號注冊 此步驟本文略過&#xff0c;如有需要可以參考其他文章。 2、上傳資源 不論是上傳訓練好的模型進行預測&#xff0c;還是訓練用的…

如何提升美國Facebook直播的整體體驗?

Facebook作為全球最大的社交媒體平臺之一&#xff0c;提供了直播功能&#xff0c;用戶可以實時分享生活、見解和創意。許多商家通過美國Facebook直播來獲取更多客戶&#xff0c;但直播時可能會遇到網絡卡頓的問題&#xff0c;導致觀看體驗不佳。本文將探討如何解決這個問題&…

文華財經盤立方期貨通鱷魚指標公式均線交易策略源碼

文華財經盤立方期貨通鱷魚指標公式均線交易策略源碼&#xff1a; 新建主圖幅圖類型指標都可以&#xff01; VAR1:(HL)/2; 唇:REF(SMA(VAR1,5,1),3),COLORGREEN; 齒:REF(SMA(VAR1,8,1),5),COLORRED; 顎:REF(SMA(VAR1,13,1),8),COLORBLUE;

C++規范

一、VS工具集列表&#xff1a; Visual Studio 2008&#xff1a;v90 Visual Studio 2010&#xff1a;v100 Visual Studio 2012&#xff1a;v110 Visual Studio 2013&#xff1a;v120 Visual Studio 2015&#xff1a;v140 &#xff08;v140_xp&#xff09; Visual Studio 2017&a…

FinClip SDK 入駐鴻蒙生態伙伴市場,激發鴻蒙應用創新活力

華為近期宣布開放“鴻蒙生態伙伴SDK市場”&#xff0c;甄選各類優質、安全的SDK加入聚合平臺&#xff0c;致力于幫助各行業開發者輕松、高效地打造鴻蒙原生應用。 目前&#xff0c;已有18個領域、超過350個SDK適配HarmonyOS NEXT版本&#xff0c;并有超過120個SDK完成上架發布…

【Linux Git入門】Git的介紹

文章目錄 前言git簡介git是什么git的作用為什么要學習git安裝git總結前言 在現代軟件開發中,版本控制系統已經成為了不可或缺的工具。其中,Git是最受歡迎的版本控制系統之一。Git是由Linux的創造者Linus Torvalds在2005年創建的,用于管理Linux內核的開發。Git是一個分布式版…

const 修飾不同內容區分

1.修飾局部變量 const int a 1;int const a 1; 這兩種是一樣的 注意&#xff1a; const int b; 該情況下編譯器會報錯&#xff1a;常量變量"b”需要初始值設定項 將一個變量沒有賦初始值直接const修飾后&#xff0c;在以后時無法更改內容的。 2.修飾常量字符串 a.…

智享AI自動直播系統:打造獨一無二的屬于你自己的AI主播

隨著科技的迅猛發展&#xff0c;人工智能&#xff08;AI&#xff09;技術已經滲透到了我們生活的方方面面。其中&#xff0c;AI自動直播系統作為新興的技術應用&#xff0c;正逐漸改變著傳統直播行業的格局。本文將深入探討智享AI自動直播系統的優勢&#xff0c;以及它如何幫助…

哪些算法會使用最大似然估計

邏輯回歸&#xff08;Logistic Regression&#xff09;&#xff1a; 邏輯回歸通過最大化似然函數來估計模型參數&#xff0c;使得觀察到的數據最有可能由模型生成。 樸素貝葉斯分類器&#xff08;Naive Bayes Classifier&#xff09;&#xff1a; 樸素貝葉斯使用貝葉斯定理&…

Laravel - laravel-websockets 開發詳解

1.我laravel-websockets 的開發環境 Laravel 9.0Laravel WebSockets &#xff08;最新版&#xff09;Laravel Vite 2. 安裝服務器端包 beyondcode/laravel-websockets 運行以下命令安裝laravel-websockets composer require beyondcode/laravel-websockets 安裝完后&#…

【Linux命令入門】查找文件

文章目錄 前言whichlocatewhereisfindgrep總結前言 在日常的Linux使用中,我們經常需要查找文件,無論是為了找到某個特定的配置文件,還是為了找到某個丟失的文檔。Linux提供了一些強大的命令行工具,可以幫助我們在系統中查找文件。這些工具包括find,locate,which,wherei…

「樹莓派入門」樹莓派進階02-傳感器應用與交通燈項目

傳感器是樹莓派實現智能化的關鍵。通過本教程,你可以開始嘗試使用傳感器來增強樹莓派的功能。 一、傳感器在樹莓派中的作用 傳感器是樹莓派與外界環境交互的重要工具。它們可以檢測各種物理量,如光、聲音、溫度等,并將這些物理量轉換為電信號,供樹莓派讀取和處理。 二、數…

C++ Linux調試(無IDE)

跨平臺IDE編譯調試C很方便&#xff0c;如QTCreate 、VSCode、Eclipse等&#xff0c;但是如果只能使用Shell控制臺呢&#xff0c;gdb調試的優勢就很明顯了&#xff0c;在沒有IDE的情況下&#xff0c;這個方式最有效。因為上手不是很難&#xff0c;特此整理 參考鏈接 目錄 1、G…

光伏項目開發合作模式

光伏項目開發合作模式多種多樣&#xff0c;根據應用場景的不同&#xff0c;主要分為戶用光伏項目合作模式和工商業光伏項目合作模式。本文將分別介紹這兩種模式的特點和常見形式&#xff0c;幫助大家更好地了解光伏項目開發的市場運作。 一、戶用光伏項目合作模式 1.用戶全款購…

筆記本電腦內存不夠

筆記本電腦內存不夠是眾多筆記本用戶面臨的常見問題&#xff0c;尤其是對于一些需要處理大型文件或者運行復雜軟件的用戶&#xff0c;這個問題可能會嚴重影響筆記本的使用體驗。那么&#xff0c;我們應該如何解決筆記本電腦內存不夠的問題呢&#xff1f;本文將從幾個方面進行詳…

2024年6月118篇代碼大模型論文最全整理

引言 本文整理了2024年6月全球各大高校與科研機構發布的118篇代碼大模型相關論文。根據論文內容&#xff0c;我們將其整理為基座模型與訓練數據、代碼微調、測試基準、代碼Agent、低資源語言處理、AI代碼安全與分析、人機交互、軟件工程下游任務應用&#xff08;包括代碼生成、…

基于B/S架構+java語言+ 開發工具Idea,vscode醫院產科信息管理系統源碼 如何標準化對接技術及各個模塊

基于B/S架構java語言 開發工具Idea,vscode醫院產科信息管理系統源碼 如何標準化對接技術及各個模塊 醫院產科信息管理系統&#xff1a;標準化對接是一個涉及多個方面的復雜過程&#xff0c;旨在通過數字化手段提升產科管理的效率與質量&#xff0c;實現孕產婦全周期的健康管理…