📄 defaultargument.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="css/stdlayout.css" type="text/css">
<link rel="stylesheet" href="css/print.css" type="text/css">
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<title>预设引数</title>
</head>
<body>
<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>
<h1><a href="CppGossip.html">C++
Gossip: 预设引数</a></h1>
<br>
C++允许您使用预设引数,预设引数的使用在一开始的函式原型宣告中进行定义,而之后的函式定义则无需再宣告,来看个实际例子:<br>
<br>
<pre>#include <iostream> <br>using namespace std; <br><br>double area(double, double = 3.14); <br><br>int main() { <br> double r, pi; <br><br> cout << "输入半径与PI: "; <br> cin >> r >> pi; <br><br> cout << "面积(自订PI): " << area(r, pi)<br> << endl; <br> cout << "面积(default): " << area(r) <br> << endl;<br> <br> return 0; <br>} <br><br>double area(double r, double pi) { <br> return r*r*pi; <br>}<br></pre>
<br>
<span class="postbody">
执行结果:</span><br>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);"><small><span style="color: rgb(255, 255, 255);">输入半径与PI: 3 3.14159<br>
面积(自订PI): 28.2743<br>
面积(default): 28.26</span></small><span style="color: rgb(255, 255, 255);"><br>
</span></td>
</tr>
</tbody>
</table>
<br>
在上面的程式中,area()函式将参数pi的预设值设定为3.14,在不指定第二个引数时,area()将会自动使用预设引数,使得pi设定为
3.14,如果指定pi值的话,则就以使用者的指定来设定pi值。 <br>
<br>
您可以指定两个以上的预设引数,然而必须注意的是,预设引数一旦出现在参数列,则其右边的参数也必须设定预设引数,所以在使用预设引数时,必须注意引数列
的配置顺序,例如下面的宣告是错误的: <br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">double volumn(double h
= 1.0, double w = 1.0, double l);</span><br>
</div>
<br>
而必须是以下才是正确的:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">double volumn(double l,
double w = 1.0, double h = 1.0);</span><br>
</div>
<br>
如果程式中有两个以上的预设引数,则在程式呼叫时就必须注意,因为预设引数的使用是以引数的顺序由左至右来进行的,例如若有个函式宣告如下: <br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">bool setScreen(int
width = 80, int height = 24, char bkcolor = ' ');</span><br>
</div>
<br>
则在呼叫函式时,若使用setScreen('R');,则其作用相当于setScreen('R', 24, '
');而不是setScreen(80, 24, 'R');,而呼叫时使用setScreen(, ,
'R');这个方法则是错误的,所以预设引数的介面是必须小心设计的。 <br>
<br>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -