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++
- 關於python中format佔位符中的 {!} 引數PythonORM
- 【C++】引數的預設值C++
- SCSS % 佔位符CSS
- TypeScript 函式可選引數和預設引數TypeScript函式
- TensorFlow常量、變數和佔位符詳解(學習筆記)變數筆記
- ES6 筆記 Rest 引數和 預設引數筆記REST
- golang fmt 格式 “佔位符”Golang
- 深入解析 ES6:Rest 引數和引數預設值REST
- html 空白漢字佔位符HTML
- 聊聊 SpringBoot 中的兩種佔位符:@*@ 和 ${*}Spring Boot
- c#基礎-5.變長引數和引數預設值C#
- POJ 3737 UmBasketella & printf佔位符%lf和%f & cin/cout取消繫結加速 & cin/cout保留小數位數
- golang 佔位符還傻傻分不清?Golang
- 【20】vue.js — slot佔位符Vue.js
- 使用PreparedStatement為佔位符?賦值賦值
- C++行內函數、函式過載與函式預設引數C++函數函式
- Django 常用欄位和引數Django
- C++ 預設引數與引用傳遞:語法、用法及示例C++
- React Native預設佔位佈局placeholderReact Native
- SpringBoot配置檔案佔位符Spring Boot
- 問題:mybatis like 佔位符處理MyBatis
- wpf兩種佔位符實現方式
- 在定義C++, C通用介面函式時讓C++介面支援預設引數C++函式
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- 檢視JVM預設配置引數JVM
- 陷阱!python引數預設值Python
- Python 函式(預設引數)Python函式
- Python預設引數的坑Python
- Python中的預設引數Python
- 字元編碼及空白漢字佔位符字元
- python切片如何作為佔位符使用Python
- 詳解 Go 語言中 20 個佔位符!Go
- Python 佔位符格式化詳解Python
- javascript為函式設定預設引數JavaScript函式
- AIX7.1 VMO 引數預設設定AI