黑馬程序員C++核心編程筆記--3 函數高級

3.1 函數默認參數

本節內容之前已經整理過,詳見22.函數的默認值

3.2 函數占位參數

C++中函數的形參列表里可以有占位參數,用來做占位,調用函數時必須補填該位置

語法
返回值類型 函數名 (數據類型) {}

在現階段函數的占位參數存在意義不大,但是后面的課程中會用到該技術

示例:

#include <iostream>
using namespace std;// 函數占位參數,占位參數也可以有默認值
void func(int a, int) {cout  << "this is a func" << endl;
}int main() {func(1, 2);return 0;
}

3.3 函數重載-基本語法

作用:函數名可以相同,提高復用性
函數重載滿足條件

  • 同一個作用域
  • 函數名相同
  • 函數參數類型不同或者個數不同或者順序不同

注意:函數的返回值不可以作為函數重載的條件

示例:

#include <iostream>
#include <iostream>
using namespace std;// 1.參數類型不同
void print(int a)
{cout << "int" << endl;
}
void print(double a)
{cout << "double" << endl;
}// 2.參數順序不同
void print(double a, int b) {cout << "int int" << endl;
}
void print(int a, double b) {cout << "double double" << endl;
}
// 注意:同類型參數順序不同是不被允許的,因為函數名相同,編譯器會認為這是同一個函數
// void print(int a, int b) {}和void print(int b, int a) {}同時出現時,編譯器會報錯// 3。參數個數不同
void print(int a, int b, int c) {cout << "int int int" << endl;
}
void print(int a, int b,  int c, int d) {cout << "int int" << endl;
}// 注意事項:函數返回值類型不同不可作為函數重載的條件
int main()
{print(1);print(1.0);print(1.0, 1);print(1, 1.0);print(1, 1, 1);print(1, 1, 1, 1);return 0;
}

3.4 函數重載-注意事項

  • 引用作為重載條件
  • 函數重載碰到函數默認參數

示例:

#include <iostream>
using namespace std;// 函數重載注意事項
// 1.引用作為重載的條件
void fun(int& a) {cout << "func(int& a)調用" << endl;
}void fun(const int& a) {cout << "func(const int& a)調用" << endl;
}// 2.函數重載碰到默認參數
void func(int a) {cout << "func(int a)調用" << endl;
}
void func(int a, int b = 10) {cout << "func(int a, int b = 10)調用" << endl;
}int main() {// func(int& a)調用int a = 10;fun(a);// func(const int& a)調用const int b = 10;fun(b);fun(10);// 當函數調用碰到默認參數會出現二義性報錯// func(10);   // 錯誤?,默認參數不能省略func(10,10);    //  正確return 0;
}

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

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

相關文章

數據倉庫分層 4 層模型是什么?

企業每天都在產生和收集海量數據。然而&#xff0c;面對這些數據&#xff0c;許多企業卻陷入了困境&#xff1a;如何高效管理、處理和分析這些數據&#xff1f;如何從數據中提取有價值的信息來支持業務決策&#xff1f;這些問題困擾著眾多數據分析師和 IT 管理者。 在眾多架構…

Java正則表達式完全指南

Java正則表達式完全指南 一、正則表達式基礎概念1.1 什么是正則表達式1.2 Java中的正則表達式支持 二、正則表達式基本語法2.1 普通字符2.2 元字符2.3 預定義字符類 三、Java中正則表達式的基本用法3.1 編譯正則表達式3.2 創建Matcher對象并執行匹配3.3 常用的Matcher方法 四、…

緩存擊穿、緩存雪崩、緩存穿透以及數據庫緩存雙寫不一致問題

在項目中&#xff0c;我們所需要的數據通常存儲在數據庫中&#xff0c;但是數據庫的數據保存在硬盤上&#xff0c;硬盤的讀寫操作很慢&#xff0c;為了避免直接訪問數據庫&#xff0c;我們可以使用 Redis 作為緩存層&#xff0c;緩存通常存儲在內存中&#xff0c;內存的讀寫速度…

可靈2.1 vs Veo 3:AI視頻生成誰更勝一籌?

在Google發布Veo 3幾天后,可靈顯然感受到了壓力,發布了即將推出的視頻模型系列可靈 2.1的早期體驗版。 據我了解,有三種不同的模式: 可靈 2.1 標準模式: 720p分辨率 僅支持圖像轉視頻(生成更快,一致性更好) 5秒視頻仍需20積分 可靈 2.1 專業模式: 1080p分辨率 僅在圖…

解決Docker存儲空間不足問題

虛擬機磁盤擴展實戰&#xff1a;解決Docker存儲空間不足問題 問題背景 在虛擬機中運行的Linux系統上&#xff0c;Docker服務因根分區空間不足而無法正常運行。初始狀態如下&#xff1a; [rootlocalhost ~]# df -h / 文件系統 容量 已用 可用 已用% 掛載點…

Redis 中如何保證緩存與數據庫的數據一致性?

在 Redis 中保證緩存與數據庫的數據一致性&#xff0c;需結合業務場景選擇以下策略&#xff1a; 核心策略總結 Cache Aside&#xff08;旁路緩存&#xff09;模式 讀操作&#xff1a;先查緩存&#xff0c;未命中則查數據庫并寫入緩存。寫操作&#xff1a;先更新數據庫&#xf…

晶振頻率穩定性:5G 基站與航天設備的核心競爭力

在當今科技飛速發展的時代&#xff0c;電子設備的性能和可靠性至關重要。晶振作為電子設備中的核心部件&#xff0c;為系統提供精確的時間和頻率基準。晶振的頻率穩定性直接影響著設備的整體性能&#xff0c;從日常生活中廣泛使用的智能手機、智能穿戴設備&#xff0c;到對精度…

PDFGear——完全免費且功能強大的PDF處理軟件

關鍵詞 &#xff1a;PDFGear、免費、跨平臺、多功能、OCR 概要 &#xff1a;PDFGear是一款完全免費且功能強大的PDF處理軟件&#xff0c;支持Windows、macOS、iOS和Android等多平臺使用。它集PDF閱讀、編輯、格式轉換、OCR識別及AI智能助手于一體&#xff0c;滿足用戶多樣化文檔…

【筆記】在 MSYS2(MINGW64)中正確安裝 Rust

#工作記錄 1. 環境信息 Windows系統: MSYS2 MINGW64當前時間: 2025年6月1日Rust 版本: rustc 1.87.0 (17067e9ac 2025-05-09) (Rev2, Built by MSYS2 project) 2. 安裝步驟 步驟 1: 更新系統包數據庫并升級已安裝的包 首先&#xff0c;確保我們的 MSYS2 系統是最新狀態。打…

WIN11+VSCODE搭建的c/c++環境調試報錯解決

解決調試報錯 前面win11vscode搭建的c/c環境&#xff0c;ctrlshiftB生成正常&#xff0c;cttlF5運行正常。今天打斷點逐步調試時報錯&#xff0c;提示找不到庫文件。解決方案如下&#xff1a; 下載mingw-w64源碼庫&#xff1a;&#xff08;兩種途徑&#xff09; 通過MSYS2 UC…

React項目在ios和安卓端要做一個漸變色背景,用css不支持,可使用react-native-linear-gradient

以上有個模塊是灰色逐漸到白的背景色過渡 如果是css&#xff0c;以下代碼就直接搞定 background: linear-gradient(180deg, #F6F6F6 0%, #FFF 100%);但是在RN中不支持這種寫法&#xff0c;那應該寫呢&#xff1f; 1.引入react-native-linear-gradient插件&#xff0c;我使用的是…

android-studio-2024.3.2.14如何用WIFI連接到手機(給數據線說 拜拜!)

原文&#xff1a;Android不用數據線就能調試真機的方法—給數據線說 拜拜&#xff01;&#xff08;adb遠程調試&#xff09; android-studio-2024.3.2.14是最新的版本&#xff0c;如何連接到手機&#xff0c;可用WIFI&#xff0c;可不用數據線&#xff0c;拜拜 第一步&#xf…

【前端】JS引擎 v.s. 正則表達式引擎

JS引擎 v.s. 正則表達式引擎 它們的轉義符都是\ 經過JS引擎會進行一次轉義 經過正則表達式會進行一次轉義在一次轉義中\\\\\的轉義過程&#xff1a; 第一個 \ (轉義符) 會“吃掉”第二個 \&#xff0c;結果是得到一個字面量的 \。 第三個 \ (轉義符) 會“吃掉”第四個 \&#x…

ReactHook有哪些

React 中常用的 Hooks 列表及用法 React Hooks 是 React 16.8 版本引入的一項重要特性&#xff0c;它極大地簡化和優化了函數組件的開發過程。以下是 React 中常用的 Hooks 列表及其詳細用法&#xff1a; 1. useState useState 是用于在函數組件中添加狀態的 Hook。通過調用…

【PyQt5】PyQt5初探 - 一個簡單的例程

PyQt5初探 - 一個簡單的例程 引言一、安裝配置二、使用2.1 PyQt5簡單例程2.2 與c Qt深入對比 三、相關教程 引言 PyQt5是一個比較流行的Python圖形用戶界面(GUI)庫&#xff0c;它基于Qt庫&#xff08;一個跨平臺的C庫&#xff0c;用于開發應用程序的圖形界面&#xff09;為Pyt…

圖文詳解Java并發面試題

文章目錄 1、并發與并行2、線程安全3、線程、進程、協程4、線程間通信5、線程創建方式6、8G內存創建的線程數7、普通Java程序含有的線程8、start()、run()9、線程調度、6種狀態、強制停止線程、上下文切換10、守護線程、用戶線程11、 volatile 、synchronized12、sleep() 、 wa…

飛牛fnNAS存儲空間模式詳解

目錄 一、NAS的存儲空間 二、多硬盤對NAS速度的提升原理 三、多硬盤對數據安全的提升原理 四、多硬盤對容量的提升原理 五、磁盤陣列模式 六、飛牛NAS支持的存儲模式 七、具體如何選擇存儲空間模式 在數字化時代,數據是個人和企業發展的核心資產,但面臨硬盤損壞、病毒…

OpenCv高階(二十)——dlib臉部輪廓繪制

文章目錄 一、人臉面部輪廓繪制代碼實現1、定義繪制直線段的函數2、定義繪制凸包輪廓的函數3、讀取輸入圖像4、初始化dlib的人臉檢測器5、使用檢測器在圖像中檢測人臉&#xff08;參數0表示不進行圖像縮放&#xff09;6、加載dlib的68點人臉關鍵點預測模型7、遍歷檢測到的每個人…

WEBSTORM前端 —— 第3章:移動 Web —— 第3節:移動適配

目錄 一、移動Web基礎 1.谷歌模擬器 2.屏幕分辨率 3.視口 4.二倍圖 二、適配方案 三、rem 適配方案 四、less 1.less – 簡介 2.less – 注釋 3.less – 運算 4.less – 嵌套 5.less – 變量 6.less – 導入 7.less – 導出 8.less – 禁止導出 五…

Altium Disigner(16.1)學習-原理圖繪制以及必要操作

一、下載軟件 通過網盤分享的文件&#xff1a;Altium Designer 16.zip 鏈接: https://pan.baidu.com/s/1uBHeoJJ-iA2tXw3NRjCcdA?pwd7c3h 提取碼: 7c3h 復制這段內容后打開百度網盤手機App&#xff0c;操作更方便哦 --來自百度網盤超級會員v5的分享 二、建立工程 添加proje…