C++ 預設引數和佔位符
通常情況下,函式在呼叫時,形參從實參那裡取得值。對於多次呼叫同一函式的同一 實參時,C++給出了更簡單的處理辦法。給形參以預設值,這樣就不用從實參那裡取值了。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
// c++中 允許給一個形參 預設設定為一個值, 當外部呼叫函式的時候,如果不傳遞引數的,那麼x就是100
//如果外部傳遞實參,那麼x的值就是實參的值
int func1(int x, int = 0) // 這裡的 int = 0 是一個佔位符,沒有實際意義
{
cout << "func1: x = " << x << endl;
return 0;
}
//求一個 立方體的體積
//預設引數,必須是從右向左設定, 只有有一個引數是帶有預設引數 的,那麼他右邊的所有引數都必須有預設值。
int volume(int len, int width, int high = 30)
{
return len * width * high;
}
int main(void)
{
int x = 10;
int v = 0;
func1(x); // 傳遞一個引數
func1(x , v); // 傳遞兩個引數,v 傳到 func1函式中沒有意義, int = 0 是一個佔位符
int len = 10;
int w = 20;
int h = 30;
v = volume(len, w, h); // 傳遞三個引數
cout << "v = " << v << endl;
v = volume(len, w); // 傳遞兩個引數
cout << "v = " << v << endl;
return 0;
}
錯誤函式寫法
float volume(float length, float weight = 4,float high){ // 錯誤的函式寫法
return length*weight*high;
}
在預設引數規則,如果預設引數出現,那麼右邊的都必須有預設引數,例如當 float weight 給予預設值,float high 沒有賦值的話,執行就會報錯
int func1(int x, int = 0)
{
cout << "func1: x = " << x << endl;
return 0;
}
函式佔位引數
佔位引數只有引數型別宣告,⽽而沒有引數名宣告
一般情況下,在函式體內部⽆無法使⽤用佔位引數
注:可以將佔位引數與預設引數結合起來使⽤
意義
為以後程式的擴充套件留下線索
相容C語⾔言程式中可能出現的不規範寫法
總結:
預設引數規則 :
只有引數列表後面部分的引數才可以提供預設引數值
一旦在一個函式呼叫中開始使用預設引數值,那麼這個引數後的所有參 數都必須使用預設引數值
如果預設引數和佔位引數在一起,都能調⽤用起來
相關文章
- 引數佔位符
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- C++預設引數C++
- SCSS % 佔位符CSS
- TensorFlow常量、變數和佔位符詳解(學習筆記)變數筆記
- tensorflow-佔位符
- TypeScript 函式可選引數和預設引數TypeScript函式
- 聊聊 SpringBoot 中的兩種佔位符:@*@ 和 ${*}Spring Boot
- golang fmt 格式 “佔位符”Golang
- POJ 3737 UmBasketella & printf佔位符%lf和%f & cin/cout取消繫結加速 & cin/cout保留小數位數
- SpringBoot配置檔案佔位符Spring Boot
- maven如何過濾佔位符Maven
- html 空白漢字佔位符HTML
- c#基礎-5.變長引數和引數預設值C#
- golang 佔位符還傻傻分不清?Golang
- 04-預設引數
- C++行內函數、函式過載與函式預設引數C++函數函式
- C++ 預設引數與引用傳遞:語法、用法及示例C++
- Django 常用欄位和引數Django
- SpringBoot專案配置檔案佔位符Spring Boot
- python切片如何作為佔位符使用Python
- 問題:mybatis like 佔位符處理MyBatis
- Godot 4.0 載入為佔位符(InstancePlaceholder)的用法和特點Go
- 在定義C++, C通用介面函式時讓C++介面支援預設引數C++函式
- 字元編碼及空白漢字佔位符字元
- 106-Python中常用佔位符型別Python型別
- 詳解 Go 語言中 20 個佔位符!Go
- python預設引數的使用注意Python
- 檢視JVM預設配置引數JVM
- php函式之如何用預設引數和可變長度引數方式傳遞?PHP函式
- Django之ORM常用欄位和引數DjangoORM
- vue事件帶預設引數,怎麼傳遞其他引數Vue事件
- c++函式引數和返回值C++函式
- 理解 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:以太坊和 BSC 中的原生代幣佔位符
- python 負數去掉符號位Python符號
- 檢視JVM預設引數及微調JVM啟動引數JVM
- 預設引數和關鍵字參數列面上最大的區別是?
- python疑問5:位置引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數區別Python