Files
hustoj/web/cppreference-zh/chmhelp/cpp-language-operator_other.html
2025-08-01 12:57:54 +08:00

740 lines
71 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&#20854;&#20182;&#36816;&#31639;&#31526;</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_operator_other skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#20854;&#20182;&#36816;&#31639;&#31526;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="wikitable" style="font-size:85%;">
<tr>
<th rowspan="2">&#36816;&#31639;&#31526;&#21517;</th>
<th rowspan="2">&#35821;&#27861;</th>
<th rowspan="2"><a href="cpp-language-operators.html">&#21487;&#37325;&#36733;</a></th>
<th colspan="2">&#21407;&#22411;&#31034;&#20363;&#65288;&#23545;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">class</span> T</span></span>&#65289;</th>
</tr>
<tr>
<th>&#31867;&#20869;&#23450;&#20041;</th>
<th>&#31867;&#22806;&#23450;&#20041;</th>
</tr>
<tr>
<td>&#20989;&#25968;&#35843;&#29992;</td>
<td><code>a(a1, a2)</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">R T<span class="sy4">::</span><span class="me2">operator</span><span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>Arg1 <span class="sy3">&amp;</span>a1, Arg2 <span class="sy3">&amp;</span>a2, ... ...<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
<tr>
<td>&#36887;&#21495;</td>
<td><code>a, b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T2<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span>,<span class="br0">(</span>T2 <span class="sy3">&amp;</span>b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T2<span class="sy3">&amp;</span> operator,<span class="br0">(</span><span class="kw4">const</span> T <span class="sy3">&amp;</span>a, T2 <span class="sy3">&amp;</span>b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#26465;&#20214;</td>
<td><code>a&nbsp;? b&nbsp;: c</code></td>
<td style="background:#ff9090; color:black; vertical-align: middle; text-align: center;" class="table-no">&#21542;</td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p><i>&#20989;&#25968;&#35843;&#29992;</i>&#36816;&#31639;&#31526;&#20026;&#20219;&#20309;&#23545;&#35937;&#25552;&#20379;&#20989;&#25968;&#35821;&#20041;&#12290;</p>
<p><i>&#26465;&#20214;</i>&#36816;&#31639;&#31526;&#65288;&#36890;&#20439;&#22320;&#31216;&#20026;&ldquo;&#19977;&#20803;&#26465;&#20214;&rdquo;&#65289;&#26816;&#26597;&#31532;&#19968;&#34920;&#36798;&#24335;&#30340;&#24067;&#23572;&#20540;&#65292;&#28982;&#21518;&#26681;&#25454;&#20854;&#32467;&#26524;&#20540;&#65292;&#27714;&#20540;&#24182;&#36820;&#22238;&#31532;&#20108;&#25110;&#31532;&#19977;&#34920;&#36798;&#24335;&#12290;</p>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;</span></h4>
<p>&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#30340;&#24418;&#24335;&#20026;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> <code><b>(</b></code> <span class="t-spar">&#23454;&#21442;1, &#23454;&#21442;2, &#23454;&#21442;3,...</span> <code><b>)</b></code></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#20854;&#20013;</p>
<ul>
<li><span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> &#26159;&#25351;&#21517;<a href="cpp-language-functions.html">&#20989;&#25968;</a>&#30340;&#34920;&#36798;&#24335;</li>
<li><span class="t-spar">&#23454;&#21442;1, &#23454;&#21442;2, &#23454;&#21442;3,...</span> &#26159;&#21487;&#33021;&#20026;&#31354;&#30340;&#20219;&#24847;&#34920;&#36798;&#24335;&#30340;&#21015;&#34920;&#65292;&#20294;&#20026;&#36991;&#20813;&#27495;&#20041;&#19981;&#20801;&#35768;&#39030;&#23618;&#20986;&#29616;&#36887;&#21495;&#36816;&#31639;&#31526;&#12290;</li>
</ul>
<p>&#25351;&#21517;&#20989;&#25968;&#30340;&#34920;&#36798;&#24335;&#21487;&#20197;&#20026;</p>
<div class="t-li1"><span class="t-li">a)</span> &#25351;&#20195;&#20989;&#25968;&#30340;&#24038;&#20540;&#34920;&#36798;&#24335;</div>
<div class="t-li1"><span class="t-li">b)</span> &#20989;&#25968;&#25351;&#38024;</div>
<div class="t-li1"><span class="t-li">c)</span> &#36873;&#25321;&#25104;&#21592;&#20989;&#25968;&#30340;&#26174;&#24335;<a href="cpp-language-operator_member_access.html">&#31867;&#25104;&#21592;&#35775;&#38382;</a>&#34920;&#36798;&#24335;</div>
<div class="t-li1"><span class="t-li">d)</span> &#38544;&#24335;&#31867;&#25104;&#21592;&#35775;&#38382;&#34920;&#36798;&#24335;&#65292;&#20363;&#22914;&#22312;&#21478;&#19968;&#25104;&#21592;&#20989;&#25968;&#20869;&#20351;&#29992;&#30340;&#25104;&#21592;&#20989;&#25968;&#21517;&#12290;</div>
<p>&#30001;<span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> &#25152;&#25351;&#20195;&#30340;&#20989;&#25968;&#65288;&#25110;&#25104;&#21592;&#65289;&#21517;&#21487;&#20197;&#26159;&#37325;&#36733;&#30340;&#65292;&#29992;<a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#20915;&#35758;</a>&#35268;&#21017;&#20915;&#23450;&#35201;&#35843;&#29992;&#21738;&#20010;&#37325;&#36733;&#12290;</p>
<p>&#33509;<span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> &#25351;&#23450;&#25104;&#21592;&#20989;&#25968;&#65292;&#21017;&#23427;&#21487;&#20026;&#34394;&#65292;&#36825;&#31181;&#24773;&#20917;&#19979;&#23558;&#20197;&#36816;&#34892;&#26102;&#30340;&#21160;&#24577;&#27966;&#21457;&#35843;&#29992;&#35813;&#20989;&#25968;&#30340;&#26368;&#32456;&#35206;&#30422;&#20989;&#25968;&#12290;</p>
<p>&#20026;&#35843;&#29992;&#35813;&#20989;&#25968;&#65292;</p>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx17">
<td>
<p>&#20197;&#20219;&#24847;&#39034;&#24207;&#23545;&#34920;&#36798;&#24335;<span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> &#21644;&#20316;&#20026;&#23454;&#21442;&#25152;&#25552;&#20379;&#30340;&#25152;&#26377;&#34920;&#36798;&#24335;<span class="t-spar">&#23454;&#21442;1</span>&#12289;<span class="t-spar">&#23454;&#21442;2</span>&#12289;<span class="t-spar">&#23454;&#21442;3</span> &#31561;&#36827;&#34892;&#27714;&#20540;&#65292;&#23427;&#20204;&#20114;&#30456;&#26159;<a href="cpp-language-eval_order.html">&#26080;&#39034;&#24207;&#30340;&#65288;unsequenced&#65289;</a>&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx17">
<td>
<p>&#34920;&#36798;&#24335;<span class="t-spar">&#20989;&#25968;&#34920;&#36798;&#24335;</span> &#25353;&#39034;&#24207;&#26089;&#20110;&#65288;sequenced before&#65289;&#34920;&#36798;&#24335; <span class="t-spar">&#23454;&#21442;1</span>&#12289;<span class="t-spar">&#23454;&#21442;2</span>&#12289;<span class="t-spar">&#23454;&#21442;3</span> &#20197;&#21450;&#21508;&#40664;&#35748;&#23454;&#21442;&#65288;&#33509;&#23384;&#22312;&#65289;&#12290;&#20197;&#20219;&#24847;&#39034;&#24207;&#27714;&#20540;&#21508;&#23454;&#21442;&#34920;&#36798;&#24335;&#65292;&#23427;&#20204;&#20114;&#30456;&#26159;<a href="cpp-language-eval_order.html">&#39034;&#24207;&#19981;&#30830;&#23450;&#30340;&#65288;indeterminately sequenced&#65289;</a>&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
</table>
<p>&#21508;&#20010;&#20989;&#25968;&#24418;&#21442;&#20197;&#20854;&#23545;&#24212;&#23454;&#21442;&#65288;&#33509;&#38656;&#35201;&#65292;&#32463;&#36807;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#21518;&#65289;&#21021;&#22987;&#21270;&#12290;&#33509;&#27809;&#26377;&#23545;&#24212;&#23454;&#21442;&#65292;&#21017;&#20351;&#29992;&#23545;&#24212;&#30340;<a href="cpp-language-default_arguments.html">&#40664;&#35748;&#23454;&#21442;</a>&#65292;&#32780;&#33509;&#20854;&#19981;&#23384;&#22312;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;&#22914;&#26524;&#25152;&#36827;&#34892;&#30340;&#26159;&#25104;&#21592;&#20989;&#25968;&#35843;&#29992;&#65292;&#21017;&#23558;&#25351;&#21521;&#24403;&#21069;&#23545;&#35937;&#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp">this</span></span> &#25351;&#38024;&#65292;&#22914;&#21516;&#20351;&#29992;&#26174;&#24335;&#36716;&#22411;&#19968;&#33324;&#65292;&#36716;&#25442;&#21040;&#20989;&#25968;&#25152;&#26399;&#24453;&#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp">this</span></span> &#25351;&#38024;&#12290;&#21508;&#20010;&#24418;&#21442;&#30340;&#21021;&#22987;&#21270;&#21644;&#38144;&#27585;&#26159;&#22312;&#35843;&#29992;&#26041;&#30340;&#35821;&#22659;&#20013;&#36827;&#34892;&#30340;&#65292;&#36825;&#24847;&#21619;&#30528;&#65292;&#20363;&#22914;&#24403;&#26576;&#20010;&#24418;&#21442;&#30340;&#26500;&#36896;&#20989;&#25968;&#25243;&#20986;&#24322;&#24120;&#26102;&#65292;&#19981;&#20250;&#32771;&#34385;&#23450;&#20041;&#20110;&#20989;&#25968;&#20869;&#30340;&#24322;&#24120;&#22788;&#29702;&#22359;&#65292;&#21363;&#20351;&#26159;&#20989;&#25968; try &#22359;&#20063;&#22914;&#27492;&#12290;&#33509;&#20989;&#25968;&#20026;&#21464;&#21442;&#20989;&#25968;&#65292;&#21017;&#23545;&#30465;&#30053;&#21495;&#24418;&#21442;&#25152;&#21305;&#37197;&#30340;&#25152;&#26377;&#23454;&#21442;&#23454;&#26045;<a href="cpp-language-variadic_arguments.html#.E9.BB.98.E8.AE.A4.E8.BD.AC.E6.8D.A2">&#40664;&#35748;&#23454;&#21442;&#25552;&#21319;</a>&#12290;&#24418;&#21442;&#30340;<a href="cpp-language-lifetime.html">&#29983;&#23384;&#26399;</a>&#26159;&#32467;&#26463;&#20110;&#23450;&#20041;&#23427;&#30340;&#20989;&#25968;&#36820;&#22238;&#26102;&#65292;&#36824;&#26159;&#22806;&#22260;&#20840;&#34920;&#36798;&#24335;&#30340;&#32467;&#23614;&#65292;&#26159;&#30001;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;</p>
<p>&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#30340;&#36820;&#22238;&#31867;&#22411;&#26159;&#34987;&#36873;&#25321;&#20989;&#25968;&#30340;&#36820;&#22238;&#31867;&#22411;&#65292;&#20197;&#38745;&#24577;&#32465;&#23450;&#20915;&#23450;&#65288;&#24573;&#30053; <code>virtual</code> &#20851;&#38190;&#35789;&#65289;&#65292;&#21363;&#20351;&#23454;&#38469;&#35843;&#29992;&#30340;&#35206;&#30422;&#20989;&#25968;&#36820;&#22238;&#19981;&#21516;&#30340;&#31867;&#22411;&#12290;&#36825;&#20801;&#35768;&#35206;&#30422;&#20989;&#25968;&#36820;&#22238;&#24341;&#29992;&#25110;&#25351;&#38024;&#65292;&#25351;&#21521;&#27966;&#29983;&#20110;&#22522;&#31867;&#20989;&#25968;&#25152;&#36820;&#22238;&#31867;&#22411;&#30340;&#31867;&#65292;&#21363; C++ &#25903;&#25345;<a href="https://en.wikipedia.org/wiki/Covariant_return_type" class="extiw" title="enwiki:Covariant return type">&#21327;&#21464;&#65288;covariant&#65289;&#36820;&#22238;&#31867;&#22411;</a>&#12290;&#33509; <code>E</code> &#25351;&#23450;&#26512;&#26500;&#20989;&#25968;&#65292;&#21017;&#36820;&#22238;&#31867;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx17">
<td>
<p>&#24403;&#19968;&#20010;&#31867;&#31867;&#22411; X &#30340;&#23545;&#35937;&#34987;&#20256;&#36882;&#32473;&#20989;&#25968;&#65292;&#25110;&#34987;&#20174;&#20989;&#25968;&#36820;&#22238;&#26102;&#65292;&#22914;&#26524; X &#30340;&#27599;&#20010;&#22797;&#21046;&#26500;&#36896;&#20989;&#25968;&#12289;&#31227;&#21160;&#26500;&#36896;&#20989;&#25968;&#21644;&#26512;&#26500;&#20989;&#25968;&#22343;&#20026;&#24179;&#20961;&#25110;&#34987;&#24323;&#32622;&#65288;delete&#65289;&#30340;&#65292;&#24182;&#19988; X &#25317;&#26377;&#33267;&#23569;&#19968;&#20010;&#26410;&#34987;&#24323;&#32622;&#30340;&#22797;&#21046;&#25110;&#31227;&#21160;&#26500;&#36896;&#20989;&#25968;&#65292;&#21017;&#23481;&#35768;&#23454;&#29616;&#21019;&#24314;&#20445;&#26377;&#20989;&#25968;&#24418;&#21442;&#25110;&#32467;&#26524;&#23545;&#35937;&#30340;&#20020;&#26102;&#23545;&#35937;&#12290;</p>
<p>&#20020;&#26102;&#23545;&#35937;&#20998;&#21035;&#20174;&#20989;&#25968;&#23454;&#21442;&#25110;&#36820;&#22238;&#20540;&#26500;&#36896;&#65292;&#32780;&#20989;&#25968;&#30340;&#24418;&#21442;&#25110;&#36820;&#22238;&#23545;&#35937;&#30340;&#21021;&#22987;&#21270;&#65292;&#22914;&#21516;&#20351;&#29992;&#26410;&#34987;&#24323;&#32622;&#30340;&#24179;&#20961;&#26500;&#36896;&#20989;&#25968;&#23545;&#20020;&#26102;&#23545;&#35937;&#36827;&#34892;&#22797;&#21046;&#19968;&#26679;&#36827;&#34892;&#65288;&#21363;&#20351;&#35813;&#26500;&#36896;&#20989;&#25968;&#26080;&#27861;&#35775;&#38382;&#65292;&#25110;&#23427;&#24182;&#19981;&#20250;&#34987;&#36827;&#34892;&#23545;&#35937;&#30340;&#22797;&#21046;&#25110;&#31227;&#21160;&#26102;&#30340;&#37325;&#36733;&#20915;&#35758;&#25152;&#36873;&#25321;&#65292;&#20063;&#26159;&#22914;&#27492;&#65289;&#12290;</p>
<p>&#36825;&#20801;&#35768;&#23567;&#30340;&#31867;&#31867;&#22411;&#65288;&#22914; <span class="t-lc"><a href="cpp-numeric-complex.html">std::complex</a></span> &#25110; <code>std::span</code>&#65289;&#21487;&#20197;&#22312;&#23492;&#23384;&#22120;&#20013;&#20256;&#36882;&#32473;&#20989;&#25968;&#25110;&#20174;&#20989;&#25968;&#36820;&#22238;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
</table>
<p>&#33509;&#20989;&#25968;&#36820;&#22238;&#24038;&#20540;&#24341;&#29992;&#25110;&#21040;&#20989;&#25968;&#30340;&#21491;&#20540;&#24341;&#29992;&#65292;&#21017;&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#30340;&#20540;&#31867;&#21035;&#20026;&#24038;&#20540;&#65292;&#33509;&#20989;&#25968;&#36820;&#22238;&#21040;&#23545;&#35937;&#30340;&#21491;&#20540;&#24341;&#29992;&#65292;&#21017;&#20540;&#31867;&#21035;&#20026;&#20129;&#20540;&#65292;&#21542;&#21017;&#20540;&#31867;&#21035;&#20026;&#32431;&#21491;&#20540;&#12290;&#33509;&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#20026;&#23545;&#35937;&#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#65292;&#21017;&#23427;&#24517;&#39035;&#25317;&#26377;&#23436;&#25972;&#23545;&#35937;&#31867;&#22411;&#65292;&#38500;&#38750;<span class="t-rev-inl t-since-cxx17"><span>&#35813;&#32431;&#21491;&#20540;&#19981;&#20250;&#34987;&#23454;&#36136;&#21270;&#65292;&#27604;&#22914;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#29992;&#20316; <a href="cpp-language-decltype.html">decltype</a> &#30340;&#25805;&#20316;&#25968;&#65292;&#25110;&#29992;&#20316;&#20316;&#20026; <code>decltype</code> &#25805;&#20316;&#25968;&#30340;<a href="cpp-language-operator_other.html#.E5.86.85.E5.BB.BA.E7.9A.84.E9.80.97.E5.8F.B7.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#36887;&#21495;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335;</a>&#30340;&#21491;&#25805;&#20316;&#25968;&#12290;</p>
<p>&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#22312;&#35821;&#27861;&#19978;&#19982;&#20540;&#21021;&#22987;&#21270; <span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="br0">(</span><span class="br0">)</span></span></span>&#65292;<a href="cpp-language-explicit_cast.html">&#20989;&#25968;&#39118;&#26684;&#36716;&#22411;</a>&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="br0">(</span>A1<span class="br0">)</span></span></span>&#65292;&#20197;&#21450;&#20020;&#26102;&#37327;&#30340;&#30452;&#25509;&#21021;&#22987;&#21270; <span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="br0">(</span>A1, A2, A3, ...<span class="br0">)</span></span></span> &#30456;&#20284;&#65292;&#20854;&#20013; <code>T</code> &#26159;&#19968;&#20010;&#31867;&#22411;&#30340;&#21517;&#31216;&#12290;</p>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;cstdio&gt;</span>
<span class="kw1">struct</span> S
<span class="br0">{</span>
<span class="kw4">int</span> f1<span class="br0">(</span><span class="kw4">double</span> d<span class="br0">)</span> <span class="br0">{</span>
<span class="kw1">return</span> printf<span class="br0">(</span><span class="st0">&quot;%f <span class="es1">\n</span>&quot;</span>, d<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#21464;&#21442;&#20989;&#25968;&#35843;&#29992;</span>
<span class="br0">}</span>
<span class="kw4">int</span> f2<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
<span class="kw1">return</span> f1<span class="br0">(</span><span class="nu0">7</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25104;&#21592;&#20989;&#25968;&#35843;&#29992;&#65292;&#21516; this-&gt;f1()</span>
<span class="co1">// &#25972;&#25968;&#24418;&#21442;&#36716;&#25442;&#20026; double</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
puts<span class="br0">(</span><span class="st0">&quot;&#20989;&#25968;&#24050;&#35843;&#29992;&quot;</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20989;&#25968;&#35843;&#29992;</span>
<span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20989;&#25968;&#35843;&#29992;</span>
S s<span class="sy4">;</span>
s.<span class="me1">f2</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25104;&#21592;&#20989;&#25968;&#35843;&#29992;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">&#20989;&#25968;&#24050;&#35843;&#29992;
7.000000</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E9.80.97.E5.8F.B7.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#36887;&#21495;&#36816;&#31639;&#31526;</span></h4>
<p>&#36887;&#21495;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335;&#30340;&#24418;&#24335;&#20026;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">&#34920;&#36798;&#24335;1</span> <code><b>,</b></code> <span class="t-spar">&#34920;&#36798;&#24335;2</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#36887;&#21495;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1, E2</span></span> &#20013;&#65292;&#23545; <code>E1</code> &#27714;&#20540;&#24182;<a href="cpp-language-expressions.html#.E5.BC.83.E5.80.BC.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#33293;&#24323;</a>&#20854;&#32467;&#26524;&#65288;&#23613;&#31649;&#24403;&#23427;&#20855;&#26377;&#31867;&#31867;&#22411;&#26102;&#65292;&#30452;&#21040;<a href="cpp-language-lifetime.html#.E4.B8.B4.E6.97.B6.E5.AF.B9.E8.B1.A1.E7.9A.84.E7.94.9F.E5.AD.98.E6.9C.9F">&#21253;&#21547;&#23427;&#30340;&#20840;&#34920;&#36798;&#24335;&#30340;&#32467;&#23614;</a>&#20043;&#21069;&#37117;&#19981;&#20250;&#38144;&#27585;&#23427;&#65289;&#65292;&#20854;&#21103;&#20316;&#29992;&#22312;&#34920;&#36798;&#24335; <code>E2</code> &#30340;&#27714;&#20540;&#24320;&#22987;&#21069;&#23436;&#25104;<span class="t-rev-inl t-until-cxx17"><span>&#65288;&#27880;&#24847;&#65292;&#29992;&#25143;&#23450;&#20041;&#30340; <code>operator,</code> &#19981;&#33021;&#20445;&#35777;&#23450;&#24207;&#65289;</span> <span><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></span></span>&#12290;</p>
<p>&#36887;&#21495;&#34920;&#36798;&#24335;&#32467;&#26524;&#30340;&#31867;&#22411;&#12289;&#20540;&#21644;&#20540;&#31867;&#21035;&#20005;&#26684;&#20026;&#20854;&#31532;&#20108;&#25805;&#20316;&#25968; <code>E2</code> &#30340;&#31867;&#22411;&#12289;&#20540;&#21644;&#20540;&#31867;&#21035;&#12290;&#33509; <code>E2</code> &#20026;&#20020;&#26102;&#37327;<span class="t-rev-inl t-since-cxx17"><span>&#34920;&#36798;&#24335;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#65292;&#21017;&#34920;&#36798;&#24335;&#30340;&#32467;&#26524;&#20026;&#35813;&#20020;&#26102;&#37327;<span class="t-rev-inl t-since-cxx17"><span>&#34920;&#36798;&#24335;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#12290;&#33509; <code>E2</code> &#20026;&#20301;&#22495;&#65292;&#21017;&#32467;&#26524;&#20026;&#20301;&#22495;&#12290;</p>
<p>&#21508;&#31181;&#36887;&#21495;&#20998;&#38548;&#21015;&#34920;&#65292;&#20363;&#22914;&#20989;&#25968;&#23454;&#21442;&#21015;&#34920;&#65288;<span class="t-c"><span class="mw-geshi cpp source-cpp">f<span class="br0">(</span>a, b, c<span class="br0">)</span></span></span>&#65289;&#21644;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> a<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">}</span></span></span>&#65292;&#20854;&#20013;&#30340;&#36887;&#21495;&#37117;&#19981;&#26159;&#36887;&#21495;&#36816;&#31639;&#31526;&#12290;&#33509;&#38656;&#35201;&#22312;&#36825;&#31181;&#35821;&#22659;&#20013;&#20351;&#29992;&#36887;&#21495;&#36816;&#31639;&#31526;&#65292;&#21017;&#24517;&#39035;&#21152;&#25324;&#21495;&#65306;<span class="t-c"><span class="mw-geshi cpp source-cpp">f<span class="br0">(</span>a, <span class="br0">(</span>n<span class="sy2">++</span>, n<span class="sy2">+</span>b<span class="br0">)</span>, c<span class="br0">)</span></span></span>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20 t-until-cxx23">
<td>
<p>&#20197;&#26080;&#25324;&#21495;&#30340;&#36887;&#21495;&#34920;&#36798;&#24335;&#20026;<a href="cpp-language-operator_member_access.html#.E5.86.85.E5.BB.BA.E7.9A.84.E4.B8.8B.E6.A0.87.E8.BF.90.E7.AE.97.E7.AC.A6">&#19979;&#26631;&#36816;&#31639;&#31526;</a>&#30340;&#31532;&#20108;&#65288;&#21491;&#65289;&#25805;&#20316;&#25968;&#26159;&#34987;&#24323;&#29992;&#30340;&#12290;</p>
<p>&#20363;&#22914;&#65292; <span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span>b, c<span class="br0">]</span></span></span> &#34987;&#24323;&#29992;&#32780; <span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span><span class="br0">(</span>b, c<span class="br0">)</span><span class="br0">]</span></span></span> &#26410;&#34987;&#24323;&#29992;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx23">
<td>
<p>&#26080;&#25324;&#21495;&#30340;&#36887;&#21495;&#34920;&#36798;&#24335;&#19981;&#33021;&#20026;<a href="cpp-language-operator_member_access.html#.E5.86.85.E5.BB.BA.E7.9A.84.E4.B8.8B.E6.A0.87.E8.BF.90.E7.AE.97.E7.AC.A6">&#19979;&#26631;&#36816;&#31639;&#31526;</a>&#30340;&#31532;&#20108;&#65288;&#21491;&#65289;&#21442;&#25968;&#12290;&#20363;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span>b, c<span class="br0">]</span></span></span> &#35201;&#20040;&#38750;&#33391;&#26500;&#35201;&#20040;&#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">operator</span><span class="br0">[</span><span class="br0">]</span><span class="br0">(</span>b, c<span class="br0">)</span></span></span>&#12290;</p>
<p>&#20026;&#23558;&#36887;&#21495;&#34920;&#36798;&#24335;&#29992;&#20316;&#19979;&#26631;&#38656;&#35201;&#25324;&#21495;&#65292;&#20363;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span><span class="br0">(</span>b, c<span class="br0">)</span><span class="br0">]</span></span></span>&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></td>
</tr>
</table>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
<span class="kw4">int</span> m <span class="sy1">=</span> <span class="br0">(</span><span class="sy2">++</span>n, <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;n = &quot;</span> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span>, <span class="sy2">++</span>n, <span class="nu0">2</span><span class="sy2">*</span>n<span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;m = &quot;</span> <span class="sy1">&lt;&lt;</span> <span class="br0">(</span><span class="sy2">++</span>m, m<span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">n = 2
m = 7</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E6.9D.A1.E4.BB.B6.E8.BF.90.E7.AE.97.E7.AC.A6">&#26465;&#20214;&#36816;&#31639;&#31526;</span></h4>
<p>&#26465;&#20214;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335;&#30340;&#24418;&#24335;&#20026;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">&#34920;&#36798;&#24335;1</span> <code><b>?</b></code> <span class="t-spar">&#34920;&#36798;&#24335;2</span> <code><b>:</b></code> <span class="t-spar">&#34920;&#36798;&#24335;3</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#23545;&#26465;&#20214;&#36816;&#31639;&#31526;&#30340;&#31532;&#19968;&#25805;&#20316;&#25968;&#27714;&#20540;&#24182;&#23558;&#20854;<a href="cpp-language-implicit_conversion.html">&#25353;&#35821;&#22659;&#36716;&#25442;</a>&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span>&#12290;&#24403;&#31532;&#19968;&#25805;&#20316;&#25968;&#30340;&#20540;&#35745;&#31639;&#21644;&#25152;&#26377;&#21103;&#20316;&#29992;&#23436;&#25104;&#20043;&#21518;&#65292;&#33509;&#32467;&#26524;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span>&#65292;&#21017;&#27714;&#20540;&#31532;&#20108;&#25805;&#20316;&#25968;&#12290;&#33509;&#32467;&#26524;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">false</span></span></span>&#65292;&#21017;&#27714;&#20540;&#31532;&#19977;&#25805;&#20316;&#25968;&#12290;</p>
<p>&#26465;&#20214;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy4">?</span> E2 <span class="sy4">:</span> E3</span></span> &#30340;&#31867;&#22411;&#21644;&#20540;&#31867;&#21035;&#25353;&#29031;&#19979;&#21015;&#35268;&#21017;&#30830;&#23450;&#65306;</p>
<div class="t-li1"><span class="t-li">1)</span> &#33509; <code>E2</code> &#25110; <code>E3</code> &#20855;&#26377; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#31867;&#22411;&#65292;&#21017;&#19979;&#21015;&#20043;&#19968;&#24517;&#39035;&#20026;&#30495;&#65292;&#21542;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#65306;</div>
<div class="t-li2"><span class="t-li">1.1)</span> <code>E2</code> &#25110; <code>E3</code>&#65288;&#20294;&#38750;&#20004;&#32773;&#65289;&#20026;&#65288;&#21487;&#24102;&#25324;&#21495;&#30340;&#65289;<a href="cpp-language-throw.html">throw &#34920;&#36798;&#24335;</a>&#12290;&#26465;&#20214;&#36816;&#31639;&#31526;&#30340;&#32467;&#26524;&#20855;&#26377;&#21478;&#19968;&#34920;&#36798;&#24335;&#30340;&#31867;&#22411;&#21644;&#20540;&#31867;&#21035;&#12290;&#33509;&#21478;&#19968;&#34920;&#36798;&#24335;&#20026;<a href="cpp-language-bit_field.html">&#20301;&#22495;</a>&#65292;&#21017;&#32467;&#26524;&#20026;&#20301;&#22495;&#12290;&#36825;&#31181;&#26465;&#20214;&#36816;&#31639;&#31526;&#24120;&#29992;&#20110; C++14 &#20043;&#21069;&#30340; C++11 <a href="cpp-language-constexpr.html">constexpr &#32534;&#31243;</a>&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> str <span class="sy1">=</span> <span class="nu0">2</span><span class="sy2">+</span><span class="nu0">2</span><span class="sy1">==</span><span class="nu0">4</span> <span class="sy4">?</span> <span class="st0">&quot;ok&quot;</span> <span class="sy4">:</span> <span class="kw1">throw</span> <a href="cpp-error-logic_error.html"><span class="kw765">std::<span class="me2">logic_error</span></span></a><span class="br0">(</span><span class="st0">&quot;2+2 != 4&quot;</span><span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</div>
<div class="t-li2"><span class="t-li">1.2)</span> <code>E2</code> &#21644; <code>E3</code> &#37117;&#20855;&#26377; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#31867;&#22411;&#65288;&#21253;&#25324;&#20004;&#32773;&#22343;&#20026; throw &#34920;&#36798;&#24335;&#30340;&#24773;&#20917;&#65289;&#12290;&#32467;&#26524;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="nu0">2</span><span class="sy2">+</span><span class="nu0">2</span><span class="sy1">==</span><span class="nu0">4</span> <span class="sy4">?</span> <span class="kw1">throw</span> <span class="nu0">123</span> <span class="sy4">:</span> <span class="kw1">throw</span> <span class="nu0">456</span><span class="sy4">;</span></pre></div>
</div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx14">
<td>
<div class="t-li1"><span class="t-li">2)</span> &#21542;&#21017;&#65292;&#33509; <code>E2</code> &#25110; <code>E3</code> &#22343;&#20026;&#20540;&#31867;&#21035;&#30456;&#21516;&#30340;&#27867;&#24038;&#20540;&#20301;&#22495;&#65292;&#31867;&#22411;&#20998;&#21035;&#20026; cv1 T &#21644; cv2 T&#65292;&#21017;&#27492;&#33410;&#21097;&#19979;&#30340;&#37096;&#20998;&#20013;&#35748;&#20026;&#36825;&#20123;&#25805;&#20316;&#25968;&#37117;&#25317;&#26377; cv T &#31867;&#22411;&#65292;&#20854;&#20013; cv &#26159; cv1 &#19982; cv2 &#30340;&#21512;&#24182;&#12290;</div>
</td>
<td><span class="t-mark-rev t-since-cxx14">(C++14 &#36215;)</span></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">3)</span> &#21542;&#21017;&#65292;&#33509; <code>E2</code> &#19982; <code>E3</code> &#25317;&#26377;&#19981;&#21516;&#31867;&#22411;&#19988;&#33267;&#23569;&#26377;&#19968;&#20010;&#26159;&#65288;&#21487;&#26377; cv &#38480;&#23450;&#30340;&#65289;&#31867;&#31867;&#22411;&#65292;&#25110;&#37117;&#26159;&#21516;&#19968;&#20540;&#31867;&#21035;&#30340;&#27867;&#24038;&#20540;&#19988;&#20855;&#26377;&#38500;&#20102; cv &#38480;&#23450;&#24615;&#20043;&#22806;&#37117;&#30456;&#21516;&#30340;&#31867;&#22411;&#65292;&#21017;&#23581;&#35797;&#32452;&#25104;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;&#24207;&#21015;</a><span class="t-rev-inl t-since-cxx14"><span>&#65288;&#20854;&#20013;&#24573;&#30053;&#25104;&#21592;&#35775;&#38382;&#65292;&#25805;&#20316;&#25968;&#26159;&#21542;&#20026;&#20301;&#22495;&#65292;&#25110;&#36716;&#25442;&#20989;&#25968;&#26159;&#21542;&#34987;&#24323;&#32622;&#65289;</span> <span><span class="t-mark-rev t-since-cxx14">(C++14 &#36215;)</span></span></span>&#65292;&#20174;&#27599;&#20010;&#25805;&#20316;&#25968;&#36716;&#25442;&#21040;&#30001;&#21478;&#19968;&#25805;&#20316;&#25968;&#25152;&#30830;&#23450;&#30340;<i>&#30446;&#26631;&#31867;&#22411;</i>&#65292;&#22914;&#19979;&#25991;&#25152;&#36848;&#12290;&#19968;&#20010;&#21517;&#20026; <code>X</code> &#30340; <code>TX</code> &#31867;&#22411;&#30340;&#25805;&#20316;&#25968;&#65292;&#33021;&#20197;&#22914;&#19979;&#26041;&#24335;&#36716;&#25442;&#25104;&#21478;&#19968;&#21517;&#20026; <code>Y</code> &#30340; <code>TY</code> &#31867;&#22411;&#25805;&#20316;&#25968;&#30340;<i>&#30446;&#26631;&#31867;&#22411;</i>&#65306;</div>
<div class="t-li2"><span class="t-li">3.1)</span> &#33509; <code>Y</code> &#20026;&#24038;&#20540;&#65292;&#21017;&#30446;&#26631;&#31867;&#22411;&#20026; <code>TY&amp;</code>&#65292;&#19988;&#24341;&#29992;&#24517;&#39035;&#30452;&#25509;&#32465;&#23450;&#21040;&#24038;&#20540;&#65307;</div>
<div class="t-li2"><span class="t-li">3.2)</span> &#33509; <code>Y</code> &#20026;&#20129;&#20540;&#65292;&#21017;&#30446;&#26631;&#31867;&#22411;&#20026; <code>TY&amp;&amp;</code>&#65292;&#19988;&#24341;&#29992;&#24517;&#39035;&#30452;&#25509;&#32465;&#23450;&#65307;</div>
<div class="t-li2"><span class="t-li">3.3)</span> &#33509; <code>Y</code> &#20026;&#32431;&#21491;&#20540;&#65292;&#25110;&#33509;&#20004;&#20010;&#36716;&#25442;&#24207;&#21015;&#37117;&#26080;&#27861;&#32452;&#25104;&#65292;&#19988; <code>TX</code> &#21644; <code>TY</code> &#33267;&#23569;&#26377;&#19968;&#20010;&#26159;&#65288;&#21487;&#20026; cv &#38480;&#23450;&#30340;&#65289;&#31867;&#31867;&#22411;&#65292;</div>
<div class="t-li3"><span class="t-li">3.3.1)</span> &#33509; <code>TX</code> &#21644; <code>TY</code>&#65288;&#24573;&#30053; cv &#38480;&#23450;&#24615;&#65289;&#20026;&#30456;&#21516;&#31867;&#31867;&#22411;&#65292;&#19988; <code>TY</code> &#33267;&#23569;&#26377; <code>TX</code> &#30340; cv &#38480;&#23450;&#65292;&#21017;&#30446;&#26631;&#31867;&#22411;&#20026; <code>TY</code>,</div>
<div class="t-li3"><span class="t-li">3.3.2)</span> &#21542;&#21017;&#65292;&#33509; <code>TY</code> &#26159; <code>TX</code> &#30340;&#22522;&#31867;&#65292;&#21017;&#30446;&#26631;&#31867;&#22411;&#20026;&#24102;&#26377; <code>TX</code> &#30340; cv &#38480;&#23450;&#31526;&#30340; <code>TY</code>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> A <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> B <span class="sy4">:</span> A <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">using</span> T <span class="sy1">=</span> <span class="kw4">const</span> B<span class="sy4">;</span>
A a <span class="sy1">=</span> <span class="kw2">true</span> <span class="sy4">?</span> A<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> T<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// Y = A(), TY = A, X = T(), TX = const B. &#30446;&#26631;&#31867;&#22411; = const A</span></pre></div>
</div>
</div>
<div class="t-li3"><span class="t-li">3.3.3)</span> &#21542;&#21017;&#65292;&#30446;&#26631;&#31867;&#22411;&#20026; <code>Y</code> &#22312;&#24212;&#29992;&#24038;&#20540;&#21040;&#21491;&#20540;&#12289;&#25968;&#32452;&#21040;&#25351;&#38024;&#21644;&#20989;&#25968;&#21040;&#25351;&#38024;<a href="cpp-language-implicit_conversion.html">&#26631;&#20934;&#36716;&#25442;</a>&#21518;&#20250;&#26377;&#30340;&#31867;&#22411;&#12290;</div>
<div class="t-li2"><span class="t-li">3.4)</span> &#33509;&#20004;&#20010;&#24207;&#21015;&#65288;E2 &#21040; E3 &#30340;&#30446;&#26631;&#31867;&#22411;&#21644; E3 &#21040; E2 &#30340;&#30446;&#26631;&#31867;&#22411;&#65289;&#22343;&#21487;&#32452;&#25104;&#65292;&#25110;&#21482;&#33021;&#32452;&#25104;&#19968;&#20010;&#20294;&#23427;&#26159;&#26377;&#27495;&#20041;&#36716;&#25442;&#24207;&#21015;&#65292;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</div>
<div class="t-li2"><span class="t-li">3.5)</span> &#33509;&#24688;&#33021;&#32452;&#25104;&#19968;&#20010;&#36716;&#25442;&#24207;&#21015;&#65288;&#27880;&#24847;&#23427;&#20173;&#28982;&#21487;&#33021;&#38750;&#33391;&#26500;&#65292;&#20363;&#22914;&#30001;&#20110;&#35775;&#38382;&#36829;&#35268;&#65289;&#65292;&#21017;&#24212;&#29992;&#35813;&#36716;&#25442;&#24207;&#21015;&#65292;&#27492;&#25551;&#36848;&#30340;&#20313;&#19979;&#37096;&#20998;&#65288;&#20174; <span class="t-v">(4)</span> &#20043;&#21518;&#65289;&#20013;&#29992;&#36716;&#25442;&#21518;&#30340;&#25805;&#20316;&#25968;&#21462;&#20195;&#21407;&#25805;&#20316;&#25968;&#12290;</div>
<div class="t-li2"><span class="t-li">3.6)</span> &#33509;&#19981;&#33021;&#32452;&#25104;&#20219;&#20309;&#36716;&#25442;&#24207;&#21015;&#65292;&#21017;&#22312;&#27492;&#25551;&#36848;&#30340;&#20313;&#19979;&#37096;&#20998;&#20013;&#20445;&#30041;&#21508;&#25805;&#20316;&#25968;&#19981;&#21464;&#12290;</div>
<div class="t-li1"><span class="t-li">4)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#26159;&#21516;&#31867;&#22411;&#21644;&#21516;&#20540;&#31867;&#21035;&#30340;&#27867;&#24038;&#20540;&#65292;&#21017;&#32467;&#26524;&#20855;&#26377;&#30456;&#21516;&#30340;&#31867;&#22411;&#21644;&#20540;&#31867;&#21035;&#65292;&#32780;&#33509; <code>E2</code> &#19982; <code>E3</code> &#33267;&#23569;&#26377;&#19968;&#20010;&#26159;&#20301;&#22495;&#65292;&#21017;&#32467;&#26524;&#20026;&#20301;&#22495;&#12290;</div>
<div class="t-li1"><span class="t-li">5)</span> &#21542;&#21017;&#65292;&#32467;&#26524;&#20026;&#32431;&#21491;&#20540;&#12290;&#33509; <code>E2</code> &#19982; <code>E3</code> &#20855;&#26377;&#19981;&#21516;&#31867;&#22411;&#65292;&#19988;&#19968;&#32773;&#25317;&#26377;&#65288;&#21487;&#20026; cv &#38480;&#23450;&#30340;&#65289;&#31867;&#31867;&#22411;&#65292;&#21017;&#23581;&#35797;&#29992;&#19979;&#25991;&#30340;&#21508;&#20869;&#24314;&#20505;&#36873;&#20989;&#25968;&#23558;&#25805;&#20316;&#25968;&#36716;&#25442;&#20026;&#20869;&#24314;&#31867;&#22411;&#65292;&#24182;&#20026;&#27492;&#23454;&#26045;&#37325;&#36733;&#20915;&#35758;&#12290;&#33509;&#37325;&#36733;&#20915;&#35758;&#22833;&#36133;&#65292;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;&#21542;&#21017;&#65292;&#24212;&#29992;&#25152;&#36873;&#25321;&#30340;&#36716;&#25442;&#65292;&#24182;&#22312;&#27493;&#39588; 6 &#29992;&#36716;&#25442;&#21518;&#30340;&#25805;&#20316;&#25968;&#21462;&#20195;&#21407;&#25805;&#20316;&#25968;&#12290;</div>
<div class="t-li1"><span class="t-li">6)</span> &#23545;&#31532;&#20108;&#21644;&#31532;&#19977;&#25805;&#20316;&#25968;&#24212;&#29992;&#24038;&#20540;&#21040;&#21491;&#20540;&#12289;&#25968;&#32452;&#21040;&#25351;&#38024;&#21644;&#20989;&#25968;&#21040;&#25351;&#38024;&#36716;&#25442;&#65292;&#28982;&#21518;&#65292;</div>
<div class="t-li2"><span class="t-li">6.1)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#29616;&#22312;&#22343;&#20855;&#26377;&#30456;&#21516;&#31867;&#22411;&#65292;&#21017;&#32467;&#26524;&#26159;&#35813;&#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#65292;<span class="t-rev-inl t-until-cxx17"><span>&#25351;&#20195;&#19968;&#20010;&#20020;&#26102;&#23545;&#35937;&#65292;</span> <span><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx17"><span>&#20854;&#32467;&#26524;&#23545;&#35937;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#20174;&#27714;&#20540; <code>E1</code> &#21518;&#36873;&#25321;&#30340;&#37027;&#20010;&#25805;&#20316;&#25968;&#36827;&#34892;&#22797;&#21046;&#21021;&#22987;&#21270;&#12290;</div>
<div class="t-li2"><span class="t-li">6.2)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#22343;&#20855;&#26377;&#31639;&#26415;&#25110;&#26522;&#20030;&#31867;&#22411;&#65306;&#21017;&#24212;&#29992;<a href="cpp-language-operator_arithmetic.html#.E8.BD.AC.E6.8D.A2"><i>&#19968;&#33324;&#31639;&#26415;&#36716;&#25442;</i></a>&#23558;&#23427;&#20204;&#21464;&#20026;<i>&#20844;&#20849;&#31867;&#22411;</i>&#65292;&#32780;&#35813;&#31867;&#22411;&#21363;&#26159;&#32467;&#26524;&#12290;</div>
<div class="t-li2"><span class="t-li">6.3)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#22343;&#20026;&#25351;&#38024;&#65292;&#25110;&#19968;&#20010;&#26159;&#25351;&#38024;&#32780;&#21478;&#19968;&#20010;&#26159;&#31354;&#25351;&#38024;&#24120;&#37327;&#65292;&#21017;&#24212;&#29992;&#25351;&#38024;&#36716;&#25442;&#21644;&#38480;&#23450;&#24615;&#36716;&#25442;&#65292;&#23558;&#23427;&#20204;&#21464;&#20026;&#20844;&#20849;&#31867;&#22411;&#65292;&#32780;&#35813;&#31867;&#22411;&#21363;&#26159;&#32467;&#26524;&#12290;</div>
<div class="t-li2"><span class="t-li">6.4)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#22343;&#20026;&#25104;&#21592;&#25351;&#38024;&#65292;&#25110;&#19968;&#20010;&#26159;&#25104;&#21592;&#25351;&#38024;&#32780;&#21478;&#19968;&#20010;&#26159;&#31354;&#25351;&#38024;&#24120;&#37327;&#65292;&#21017;&#24212;&#29992;&#25104;&#21592;&#25351;&#38024;&#36716;&#25442;&#21644;&#38480;&#23450;&#24615;&#36716;&#25442;&#65292;&#23558;&#23427;&#20204;&#21464;&#25104;&#20844;&#20849;&#31867;&#22411;&#65292;&#32780;&#35813;&#31867;&#22411;&#21363;&#26159;&#32467;&#26524;&#12290;</div>
<div class="t-li2"><span class="t-li">6.5)</span> &#33509; <code>E2</code> &#19982; <code>E3</code> &#22343;&#20026;&#31354;&#25351;&#38024;&#24120;&#37327;&#65292;&#32780;&#33267;&#23569;&#26377;&#19968;&#20010;&#20026; <span class="t-lc"><a href="cpp-types-nullptr_t.html">std::nullptr_t</a></span> &#31867;&#22411;&#65292;&#21017;&#32467;&#26524;&#31867;&#22411;&#20026; <code>std::nullptr_t</code>&#12290;</div>
<div class="t-li2"><span class="t-li">6.6)</span> &#25152;&#26377;&#20854;&#20182;&#24773;&#20917;&#19979;&#65292;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</div>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style="">
<tr>
<td class="mbox-empty-cell"></td>
<td class="mbox-text" style="">&#26412;&#33410;&#26410;&#23436;&#25104;<br />
&#21407;&#22240;&#65306;&#20219;&#20309;&#20196;&#27492;&#26356;&#21487;&#35835;&#65292;&#32780;&#19981;&#36951;&#28431;&#37325;&#28857;&#30340;&#26426;&#20250;&#65311;&#36864;&#19968;&#27493;&#26469;&#35828;&#65292;&#32473;&#27599;&#26465;&#19968;&#20010;&#19968;&#34892;&#30340;&#23567;&#31034;&#20363;&#20250;&#22823;&#26377;&#35048;&#30410;</td>
</tr>
</table>
<p>&#23545;&#20110;&#27599;&#23545;&#25552;&#21319;&#21518;&#30340;&#31639;&#26415;&#31867;&#22411; L &#21644; R &#24182;&#23545;&#20110;&#27599;&#20010;&#31867;&#22411; P&#65292;&#20854;&#20013; P &#20026;&#25351;&#38024;&#12289;&#25104;&#21592;&#25351;&#38024;&#25110;&#26377;&#20316;&#29992;&#22495;&#26522;&#20030;&#31867;&#22411;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#22312;&#19978;&#36848;&#35268;&#21017;&#30340;&#27493;&#39588; 5 &#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">LR operator<span class="sy4">?:</span><span class="br0">(</span><span class="kw4">bool</span>, L, R <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">P operator<span class="sy4">?:</span><span class="br0">(</span><span class="kw4">bool</span>, P, P <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#20854;&#20013; LR &#26159; <code>L</code> &#21644; <code>R</code> &#19978;&#36827;&#34892;&#30340;<a href="cpp-language-operator_arithmetic.html">&#19968;&#33324;&#31639;&#26415;&#36716;&#25442;</a>&#30340;&#32467;&#26524;&#12290;&#19981;&#33021;&#37325;&#36733;&#36816;&#31639;&#31526; &ldquo;?:&rdquo;&#65292;&#36825;&#20123;&#20989;&#25968;&#31614;&#21517;&#21482;&#20026;&#37325;&#36733;&#20915;&#35758;&#30340;&#30446;&#30340;&#23384;&#22312;&#12290;</p>
<p>&#26465;&#20214;&#36816;&#31639;&#31526;&#30340;&#36820;&#22238;&#31867;&#22411;&#20134;&#33021;&#20316;&#20026;&#20108;&#20803;&#31867;&#22411;&#29305;&#24615; <span class="t-lc"><a href="cpp-types-common_type.html">std::common_type</a></span> &#35775;&#38382;&#12290;</p>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;string&gt;</span>
<span class="co2">#include &lt;iostream&gt;</span>
<span class="kw1">struct</span> Node
<span class="br0">{</span>
Node<span class="sy2">*</span> next<span class="sy4">;</span>
<span class="kw4">int</span> data<span class="sy4">;</span>
<span class="co1">// &#28145;&#22797;&#21046;&#30340;&#22797;&#21046;&#26500;&#36896;&#20989;&#25968;</span>
Node<span class="br0">(</span><span class="kw4">const</span> Node<span class="sy3">&amp;</span> other<span class="br0">)</span>
<span class="sy4">:</span> next<span class="br0">(</span>other.<span class="me1">next</span> <span class="sy4">?</span> new Node<span class="br0">(</span><span class="sy2">*</span>other.<span class="me1">next</span><span class="br0">)</span> <span class="sy4">:</span> <a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a><span class="br0">)</span>
, data<span class="br0">(</span>other.<span class="me1">data</span><span class="br0">)</span>
<span class="br0">{</span><span class="br0">}</span>
Node<span class="br0">(</span><span class="kw4">int</span> d<span class="br0">)</span> <span class="sy4">:</span> next<span class="br0">(</span><a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a><span class="br0">)</span>, data<span class="br0">(</span>d<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
~Node<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> delete next <span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#31616;&#21333;&#30340;&#21491;&#20540;&#31034;&#20363;</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span> <span class="sy1">&gt;</span> <span class="nu0">2</span> <span class="sy4">?</span> <span class="nu0">10</span> <span class="sy4">:</span> <span class="nu0">11</span><span class="sy4">;</span> <span class="co1">// 1 &gt; 2 &#20026; false&#65292;&#25925; n = 11</span>
<span class="co1">// &#31616;&#21333;&#30340;&#24038;&#20540;&#31034;&#20363;</span>
<span class="kw4">int</span> m <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span>
<span class="br0">(</span>n <span class="sy1">==</span> m <span class="sy4">?</span> n <span class="sy4">:</span> m<span class="br0">)</span> <span class="sy1">=</span> <span class="nu0">7</span><span class="sy4">;</span> <span class="co1">// n == m &#20026; false&#65292;&#25925; m = 7</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;n = &quot;</span> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;<span class="es1">\n</span>m = &quot;</span> <span class="sy1">&lt;&lt;</span> m<span class="sy4">;</span> <span class="co1">// &#36755;&#20986;&#32467;&#26524;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">n = 11
m = 7</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E6.A0.87.E5.87.86.E5.BA.93">&#26631;&#20934;&#24211;</span></h3>
<p>&#26631;&#20934;&#24211;&#20013;&#35768;&#22810;&#31867;&#37117;&#37325;&#36733;&#20102; <code>operator()</code>&#65292;&#20197;&#20351;&#20854;&#33021;&#34987;&#29992;&#20316;&#20989;&#25968;&#23545;&#35937;&#12290;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-memory-default_delete.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#21024;&#38500;&#23545;&#35937;&#25110;&#25968;&#32452;<br />
<span class="t-mark">(<code>std::default_delete&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-plus.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#21644;<br />
<span class="t-mark">(<code>std::plus&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-minus.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#24046;<br />
<span class="t-mark">(<code>std::minus&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-multiplies.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#20056;&#31215;<br />
<span class="t-mark">(<code>std::multiplies&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-divides.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#31532;&#19968;&#20010;&#23454;&#21442;&#38500;&#20197;&#31532;&#20108;&#20010;&#23454;&#21442;&#30340;&#32467;&#26524;<br />
<span class="t-mark">(<code>std::divides&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-modulus.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#31532;&#19968;&#20010;&#23454;&#21442;&#38500;&#20197;&#31532;&#20108;&#20010;&#23454;&#21442;&#30340;&#20313;&#25968;<br />
<span class="t-mark">(<code>std::modulus&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-negate.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20854;&#23454;&#21442;&#30340;&#38750;<br />
<span class="t-mark">(<code>std::negate&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-equal_to.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#23454;&#21442;&#26159;&#21542;&#30456;&#31561;<br />
<span class="t-mark">(<code>std::equal_to&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-not_equal_to.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#23454;&#21442;&#26159;&#21542;&#19981;&#30456;&#31561;<br />
<span class="t-mark">(<code>std::not_equal_to&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-greater.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#31532;&#19968;&#20010;&#23454;&#21442;&#26159;&#21542;&#22823;&#20110;&#31532;&#20108;&#20010;&#23454;&#21442;<br />
<span class="t-mark">(<code>std::greater&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-less.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#31532;&#19968;&#20010;&#23454;&#21442;&#26159;&#21542;&#23567;&#20110;&#31532;&#20108;&#20010;&#23454;&#21442;<br />
<span class="t-mark">(<code>std::less&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-greater_equal.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#31532;&#19968;&#20010;&#23454;&#21442;&#26159;&#21542;&#22823;&#20110;&#25110;&#31561;&#20110;&#31532;&#20108;&#20010;&#23454;&#21442;<br />
<span class="t-mark">(<code>std::greater_equal&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-less_equal.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#31532;&#19968;&#20010;&#23454;&#21442;&#26159;&#21542;&#23567;&#20110;&#25110;&#31561;&#20110;&#31532;&#20108;&#20010;&#23454;&#21442;<br />
<span class="t-mark">(<code>std::less_equal&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_and.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#36923;&#36753; AND<br />
<span class="t-mark">(<code>std::logical_and&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_or.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#36923;&#36753; OR<br />
<span class="t-mark">(<code>std::logical_or&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_not.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20854;&#23454;&#21442;&#30340;&#36923;&#36753; NOT<br />
<span class="t-mark">(<code>std::logical_not&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_and.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#25353;&#20301; AND &#30340;&#32467;&#26524;<br />
<span class="t-mark">(<code>std::bit_and&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_or.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#25353;&#20301; OR &#30340;&#32467;&#26524;<br />
<span class="t-mark">(<code>std::bit_or&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_xor.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#23454;&#21442;&#30340;&#25353;&#20301; XOR &#30340;&#32467;&#26524;<br />
<span class="t-mark">(<code>std::bit_xor&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-unary_negate.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#23545;&#20854;&#25152;&#23384;&#20648;&#30340;&#35859;&#35789;&#35843;&#29992;&#30340;&#32467;&#26524;&#30340;&#36923;&#36753;&#34917;<br />
<span class="t-mark">(<code>std::unary_negate&lt;Predicate&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-binary_negate.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#23545;&#20854;&#25152;&#23384;&#20648;&#30340;&#35859;&#35789;&#30340;&#35843;&#29992;&#30340;&#32467;&#26524;&#30340;&#36923;&#36753;&#34917;<br />
<span class="t-mark">(<code>std::binary_negate&lt;Predicate&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-reference_wrapper-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#35843;&#29992;&#20854;&#25152;&#23384;&#20648;&#30340;&#20989;&#25968;<br />
<span class="t-mark">(<code>std::reference_wrapper&lt;T&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-function-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#35843;&#29992;&#20854;&#30446;&#26631;<br />
<span class="t-mark">(<code>std::function&lt;R(Args...)&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-locale-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#29992;&#27492; locale &#30340; collate &#21051;&#38754;&#20197;&#23383;&#20856;&#24207;&#27604;&#36739;&#20004;&#20010;&#23383;&#31526;&#20018;<br />
<span class="t-mark">(<code>std::locale</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-container-map-value_compare.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#27604;&#36739;&#20004;&#20010; <code>value_type</code> &#31867;&#22411;&#30340;&#20540;<br />
<span class="t-mark">(<code>std::map&lt;Key,T,Compare,Allocator&gt;::value_compare</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-container-multimap-value_compare.html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#27604;&#36739;&#20004;&#20010; <code>value_type</code> &#31867;&#22411;&#30340;&#20540;<br />
<span class="t-mark">(<code>std::multimap&lt;Key,T,Compare,Allocator&gt;::value_compare</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-thread-packaged_task-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
</div>
</td>
<td>&#25191;&#34892;&#20989;&#25968;<br />
<span class="t-mark">(<code>std::packaged_task&lt;R(Args...)&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-random-linear_congruential_engine-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#25512;&#36827;&#24341;&#25806;&#29366;&#24577;&#24182;&#36820;&#22238;&#29983;&#25104;&#30340;&#20540;<br />
<span class="t-mark">(<code>std::linear_congruential_engine&lt;UIntType,a,c,m&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-random-uniform_int_distribution-operator().html"><span class="t-lines"><span>operator()</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#29983;&#25104;&#20998;&#24067;&#20013;&#30340;&#19979;&#20010;&#38543;&#26426;&#25968;<br />
<span class="t-mark">(<code>std::uniform_int_distribution&lt;IntType&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<p>&#26631;&#20934;&#24211;&#20013;&#30340;&#20219;&#20309;&#31867;&#37117;&#19981;&#37325;&#36733;&#36887;&#21495;&#36816;&#31639;&#31526;&#12290;boost &#24211;&#23558; <code>operator,</code> &#29992;&#20110; <a rel="nofollow" class="external text" href="http://www.boost.org/doc/libs/release/libs/assign/doc/index.html#intro">boost.assign</a>&#12289;boost.spirit &#21644;&#20854;&#20182;&#24211;&#12290;&#25968;&#25454;&#24211;&#35775;&#38382;&#24211; <a rel="nofollow" class="external text" href="http://soci.sourceforge.net/doc.html">SOCI</a> &#20134;&#37325;&#36733; <code>operator,</code>&#12290;</p>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1550">CWG 1550</a></td>
<td>C++98</td>
<td>&#24403;&#21478;&#19968;&#25805;&#20316;&#25968;&#24182;&#38750; void &#26102;&nbsp;?: &#20013;&#19981;&#20801;&#35768;&#26377;&#25324;&#21495;&#30340; throw &#34920;&#36798;&#24335;</td>
<td>&#25509;&#21463;&#26377;&#25324;&#21495;&#30340; throw &#34920;&#36798;&#24335;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1560">CWG 1560</a></td>
<td>C++98</td>
<td>&nbsp;?: &#20013;&#30340; void &#25805;&#20316;&#25968;&#23548;&#33268;&#21478;&#19968;&#25805;&#20316;&#25968;&#19978;<br />
&#26080;&#29702;&#30001;&#30340;&#24038;&#20540;&#21040;&#21491;&#20540;&#36716;&#25442;&#65292;&#22987;&#32456;&#20135;&#29983;&#21491;&#20540;</td>
<td>&#24102; void &#30340;&nbsp;?: &#33021;&#20026;&#24038;&#20540;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1932">CWG 1932</a></td>
<td>C++14</td>
<td>&nbsp;?: &#20013;&#32570;&#22833;&#21516;&#31867;&#22411;&#20301;&#22495;</td>
<td>&#20197;&#24213;&#23618;&#31867;&#22411;&#22788;&#29702;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1895">CWG 1895</a></td>
<td>C++14</td>
<td>&#19981;&#26126;&#30830;&#24323;&#32622;&#25110;&#19981;&#21487;&#35775;&#38382;&#30340;&#36716;&#25442;&#20989;&#25968;&#26159;&#21542;&#38459;&#27490;&nbsp;?: &#30340;&#36716;&#25442;&#65292;<br />
&#19988;&#26410;&#32771;&#34385;&#20174;&#22522;&#31867;&#21040;&#27966;&#29983;&#31867;&#32431;&#21491;&#20540;&#30340;&#36716;&#25442;</td>
<td>&#19982;&#37325;&#36733;&#20915;&#35758;&#30456;&#20284;&#30340;&#26041;&#24335;&#22788;&#29702;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<p><a href="cpp-language-operator_precedence.html">&#36816;&#31639;&#31526;&#20248;&#20808;&#32423;</a></p>
<p><a href="cpp-language-operators.html">&#36816;&#31639;&#31526;&#37325;&#36733;</a></p>
<table class="wikitable">
<tr style="text-align:center">
<th colspan="7">&#24120;&#35265;&#36816;&#31639;&#31526;</th>
</tr>
<tr style="text-align:center">
<td><a href="cpp-language-operator_assignment.html">&#36171;&#20540;</a></td>
<td><a href="cpp-language-operator_incdec.html">&#33258;&#22686;<br />
&#33258;&#20943;</a></td>
<td><a href="cpp-language-operator_arithmetic.html">&#31639;&#26415;</a></td>
<td><a href="cpp-language-operator_logical.html">&#36923;&#36753;</a></td>
<td><a href="cpp-language-operator_comparison.html">&#27604;&#36739;</a></td>
<td><a href="cpp-language-operator_member_access.html">&#25104;&#21592;&#35775;&#38382;</a></td>
<td><strong class="selflink">&#20854;&#20182;</strong></td>
</tr>
<tr style="text-align:center">
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">=</span> b<br />
a <span class="sy2">+</span><span class="sy1">=</span> b<br />
a <span class="sy2">-</span><span class="sy1">=</span> b<br />
a <span class="sy2">*</span><span class="sy1">=</span> b<br />
a <span class="sy2">/</span><span class="sy1">=</span> b<br />
a <span class="sy2">%</span><span class="sy1">=</span> b<br />
a <span class="sy3">&amp;</span><span class="sy1">=</span> b<br />
a <span class="sy3">|</span><span class="sy1">=</span> b<br />
a <span class="sy3">^</span><span class="sy1">=</span> b<br />
a <span class="sy1">&lt;&lt;=</span> b<br />
a <span class="sy1">&gt;&gt;=</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">++</span>a<br />
<span class="sy2">--</span>a<br />
a<span class="sy2">++</span><br />
a<span class="sy2">--</span></span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">+</span>a<br />
<span class="sy2">-</span>a<br />
a <span class="sy2">+</span> b<br />
a <span class="sy2">-</span> b<br />
a <span class="sy2">*</span> b<br />
a <span class="sy2">/</span> b<br />
a <span class="sy2">%</span> b<br />
~a<br />
a <span class="sy3">&amp;</span> b<br />
a <span class="sy3">|</span> b<br />
a <span class="sy3">^</span> b<br />
a <span class="sy1">&lt;&lt;</span> b<br />
a <span class="sy1">&gt;&gt;</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">!</span>a<br />
a <span class="sy3">&amp;&amp;</span> b<br />
a <span class="sy3">||</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">==</span> b<br />
a <span class="sy3">!</span><span class="sy1">=</span> b<br />
a <span class="sy1">&lt;</span> b<br />
a <span class="sy1">&gt;</span> b<br />
a <span class="sy1">&lt;=</span> b<br />
a <span class="sy1">&gt;=</span> b<br />
a <span class="sy1">&lt;=&gt;</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span>b<span class="br0">]</span><br />
<span class="sy2">*</span>a<br />
<span class="sy3">&amp;</span>a<br />
a<span class="sy2">-</span><span class="sy1">&gt;</span>b<br />
a.<span class="me1">b</span><br />
a<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>b<br />
a.<span class="sy2">*</span>b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">(</span>...<span class="br0">)</span><br />
a, b<br />
<span class="sy4">?</span> <span class="sy4">:</span></span></span></p>
</td>
</tr>
<tr>
<th colspan="7">&#29305;&#27530;&#36816;&#31639;&#31526;</th>
</tr>
<tr>
<td colspan="7">
<p><a href="cpp-language-static_cast.html"><tt>static_cast</tt></a> &#36716;&#25442;&#19968;&#20010;&#31867;&#22411;&#20026;&#21478;&#19968;&#30456;&#20851;&#31867;&#22411;<br />
<a href="cpp-language-dynamic_cast.html"><tt>dynamic_cast</tt></a> &#22312;&#32487;&#25215;&#23618;&#32423;&#20013;&#36716;&#25442;<br />
<a href="cpp-language-const_cast.html"><tt>const_cast</tt></a> &#28155;&#21152;&#25110;&#31227;&#38500; <a href="cpp-language-cv.html">cv</a> &#38480;&#23450;&#31526;<br />
<a href="cpp-language-reinterpret_cast.html"><tt>reinterpret_cast</tt></a> &#36716;&#25442;&#31867;&#22411;&#21040;&#26080;&#20851;&#31867;&#22411;<br />
<a href="cpp-language-explicit_cast.html">C &#39118;&#26684;&#36716;&#22411;</a> &#20197; <code>static_cast</code> &#12289; <code>const_cast</code> &#21450; <code>reinterpret_cast</code> &#30340;&#28151;&#21512;&#36716;&#25442;&#19968;&#20010;&#31867;&#22411;&#21040;&#21478;&#19968;&#31867;&#22411;<br />
<a href="cpp-language-new.html"><tt>new</tt></a> &#21019;&#24314;&#26377;&#21160;&#24577;&#23384;&#20648;&#26399;&#30340;&#23545;&#35937;<br />
<a href="cpp-language-delete.html"><tt>delete</tt></a> &#38144;&#27585;&#20808;&#21069;&#30001; new &#34920;&#36798;&#24335;&#21019;&#24314;&#30340;&#23545;&#35937;&#65292;&#24182;&#37322;&#25918;&#20854;&#25152;&#25317;&#26377;&#30340;&#20869;&#23384;&#21306;&#22495;<br />
<a href="cpp-language-sizeof.html"><tt>sizeof</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#22823;&#23567;<br />
<a href="cpp-language-sizeof....html"><tt>sizeof...</tt></a> &#26597;&#35810;<a href="cpp-language-parameter_pack.html">&#24418;&#21442;&#21253;</a>&#30340;&#22823;&#23567;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<a href="cpp-language-typeid.html"><tt>typeid</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#31867;&#22411;&#20449;&#24687;<br />
<a href="cpp-language-noexcept.html"><tt>noexcept</tt></a> &#26597;&#35810;&#34920;&#36798;&#24335;&#26159;&#21542;&#33021;&#25243;&#20986;&#24322;&#24120;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<a href="cpp-language-alignof.html"><tt>alignof</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#23545;&#40784;&#35201;&#27714;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></p>
</td>
</tr>
</table>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>