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

919 lines
88 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>&#25104;&#21592;&#35775;&#38382;&#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_member_access skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#25104;&#21592;&#35775;&#38382;&#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">
<p>&#35775;&#38382;&#20854;&#25805;&#20316;&#25968;&#30340;&#19968;&#20010;&#25104;&#21592;&#12290;</p>
<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;&#23450;&#20041;&#20869;</th>
<th>&#31867;&#23450;&#20041;&#22806;</th>
</tr>
<tr>
<td>&#19979;&#26631;</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">R<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="br0">[</span><span class="br0">]</span><span class="br0">(</span>S b<span class="br0">)</span><span class="sy4">;</span></span></span>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx23">
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">R<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="br0">[</span><span class="br0">]</span><span class="br0">(</span>S1 s1, ...<span class="br0">)</span><span class="sy4">;</span></span></span></p>
</td>
<td><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></td>
</tr>
</table>
</td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
<tr>
<td>&#38388;&#25509;&#23547;&#22336;</td>
<td><code>*a</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<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="sy2">*</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">R<span class="sy3">&amp;</span> operator<span class="sy2">*</span><span class="br0">(</span>T a<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#21462;&#22320;&#22336;</td>
<td><code>&amp;a</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<span class="sy2">*</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">R<span class="sy2">*</span> operator<span class="sy3">&amp;</span><span class="br0">(</span>T a<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#23545;&#35937;&#30340;&#25104;&#21592;</td>
<td><code>a.b</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>
<tr>
<td>&#25351;&#38024;&#30340;&#25104;&#21592;</td>
<td><code>a-&gt;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">R<span class="sy2">*</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="sy2">-</span><span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</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>&#25351;&#21521;&#23545;&#35937;&#30340;&#25104;&#21592;&#30340;&#25351;&#38024;</td>
<td><code>a.*b</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>
<tr>
<td>&#25351;&#21521;&#25351;&#38024;&#30340;&#25104;&#21592;&#30340;&#25351;&#38024;</td>
<td><code>a-&gt;*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">R<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span><span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span><span class="br0">(</span>S b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">R<span class="sy3">&amp;</span> operator<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span><span class="br0">(</span>T a, S b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>
<dl>
<dd><b>&#27880;&#35299;</b><br /></dd>
</dl>
<ul>
<li>&#19982;&#22823;&#22810;&#25968;&#29992;&#25143;&#23450;&#20041;&#30340;&#37325;&#36733;&#30456;&#21516;&#65292;&#36820;&#22238;&#31867;&#22411;&#24212;&#24403;&#19982;&#20869;&#24314;&#36816;&#31639;&#31526;&#25152;&#25552;&#20379;&#30340;&#36820;&#22238;&#31867;&#22411;&#30456;&#21305;&#37197;&#65292;&#20197;&#20415;<a href="cpp-language-operators.html">&#29992;&#25143;&#23450;&#20041;&#30340;&#36816;&#31639;&#31526;</a>&#21487;&#20197;&#21644;&#20869;&#24314;&#36816;&#31639;&#31526;&#20197;&#30456;&#21516;&#30340;&#26041;&#24335;&#20351;&#29992;&#12290;&#19981;&#36807;&#65292;&#22312;&#29992;&#25143;&#23450;&#20041;&#30340;&#36816;&#31639;&#31526;&#37325;&#36733;&#20013;&#65292;&#20219;&#20309;&#31867;&#22411;&#37117;&#21487;&#20197;&#20316;&#20026;&#20854;&#36820;&#22238;&#31867;&#22411;&#65288;&#21253;&#25324; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span>&#65289;&#12290;&#19968;&#20010;&#20363;&#22806;&#26159; <code>operator-&gt;</code>&#65292;&#23427;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#25351;&#38024;&#25110;&#32773;&#21478;&#19968;&#20010;&#24102;&#26377;&#37325;&#36733;&#30340; <code>operator-&gt;</code> &#30340;&#31867;&#20197;&#20351;&#20854;&#30495;&#27491;&#21487;&#29992;&#12290;</li>
</ul>
</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p>&#20869;&#24314;&#30340;<i>&#19979;&#26631; (subscript)</i>&#36816;&#31639;&#31526;&#25552;&#20379;&#23545;&#20854;<a href="cpp-language-pointer.html">&#25351;&#38024;</a>&#25110;<a href="cpp-language-array.html">&#25968;&#32452;</a>&#25805;&#20316;&#25968;&#25152;&#25351;&#21521;&#30340;&#23545;&#35937;&#30340;&#35775;&#38382;&#12290;</p>
<p>&#20869;&#24314;&#30340;<i>&#38388;&#25509;&#23547;&#22336; (indirection)</i>&#36816;&#31639;&#31526;&#25552;&#20379;&#23545;&#20854;&#25351;&#38024;&#25805;&#20316;&#25968;&#25152;&#25351;&#21521;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#30340;&#35775;&#38382;&#12290;</p>
<p>&#20869;&#24314;&#30340;<i>&#21462;&#22320;&#22336; (address of)</i>&#36816;&#31639;&#31526;&#21019;&#24314;&#25351;&#21521;&#20854;&#23545;&#35937;&#25110;&#20989;&#25968;&#25805;&#20316;&#25968;&#30340;&#25351;&#38024;&#12290;</p>
<p><i>&#23545;&#35937;&#30340;&#25104;&#21592;</i>&#21644;<i>&#25351;&#21521;&#23545;&#35937;&#30340;&#25104;&#21592;&#30340;&#25351;&#38024;</i>&#36816;&#31639;&#31526;&#25552;&#20379;&#23545;&#20854;&#23545;&#35937;&#25805;&#20316;&#25968;&#30340;&#25968;&#25454;&#25104;&#21592;&#25110;&#25104;&#21592;&#20989;&#25968;&#30340;&#35775;&#38382;&#12290;</p>
<p>&#20869;&#24314;&#30340;<i>&#25351;&#38024;&#30340;&#25104;&#21592;</i>&#21644;<i>&#25351;&#21521;&#25351;&#38024;&#30340;&#25104;&#21592;&#30340;&#25351;&#38024;</i>&#36816;&#31639;&#31526;&#25552;&#20379;&#23545;&#20854;&#25351;&#38024;&#25805;&#20316;&#25968;&#25152;&#25351;&#21521;&#30340;&#31867;&#30340;&#25968;&#25454;&#25104;&#21592;&#25110;&#25104;&#21592;&#20989;&#25968;&#30340;&#35775;&#38382;&#12290;</p>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E4.B8.8B.E6.A0.87.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#19979;&#26631;&#36816;&#31639;&#31526;</span></h4>
<p>&#19979;&#26631;&#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><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></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#34920;&#36798;&#24335;1</span> <code><b>[</b></code> <code><b>{</b></code> <span class="t-spar">&#34920;&#36798;&#24335;, ...</span> <code><b>}</b></code> <code><b>]</b></code></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><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">expr, ...</span> <code><b>]</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx23">(C++23)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#23545;&#20110;&#20869;&#24314;&#36816;&#31639;&#31526;&#65292;&#34920;&#36798;&#24335;&#20043;&#19968;&#65288;<span class="t-spar">&#34920;&#36798;&#24335;1</span> &#25110; <span class="t-spar">&#34920;&#36798;&#24335;2</span>&#65289;&#24517;&#39035;&#26159;&ldquo;T &#30340;&#25968;&#32452;&rdquo;&#31867;&#22411;&#30340;&#27867;&#24038;&#20540;&#25110;&ldquo;T &#30340;&#25351;&#38024;&rdquo;&#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#65292;&#32780;&#21478;&#19968;&#34920;&#36798;&#24335;&#65288;&#20998;&#21035;&#20026; <span class="t-spar">&#34920;&#36798;&#24335;2</span> &#25110; <span class="t-spar">&#34920;&#36798;&#24335;1</span>&#65289;&#24517;&#39035;&#26159;&#26080;&#20316;&#29992;&#22495;&#26522;&#20030;&#25110;&#25972;&#22411;&#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#12290;&#27492;&#34920;&#36798;&#24335;&#30340;&#32467;&#26524;&#31867;&#22411;&#20026; <code>T</code>&#12290; <span class="t-rev-inl t-since-cxx23"><span><span class="t-spar">&#34920;&#36798;&#24335;2</span> &#19981;&#33021;&#20026;&#26080;&#25324;&#21495;&#30340;<a href="cpp-language-operator_other.html#.E5.86.85.E5.BB.BA.E7.9A.84.E9.80.97.E5.8F.B7.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#36887;&#21495;&#34920;&#36798;&#24335;</a>&#12290;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span></div>
<div class="t-li1"><span class="t-li">2)</span> &#26041;&#25324;&#21495;&#20013;&#26377;&#33457;&#25324;&#21495;&#29615;&#32469;&#21015;&#34920;&#30340;&#24418;&#24335;&#20165;&#29992;&#20110;&#35843;&#29992;&#37325;&#36733;&#30340; <code>operator[]</code>&#12290;</div>
<div class="t-li1"><span class="t-li">3)</span> &#26041;&#25324;&#21495;&#20013;&#26377;&#36887;&#21495;&#20998;&#38548;&#30340;&#34920;&#36798;&#24335;&#21015;&#34920;&#30340;&#24418;&#24335;&#20165;&#29992;&#20110;&#35843;&#29992;&#37325;&#36733;&#30340; <code>operator[]</code>&#12290;</div>
<p>&#20869;&#24314;&#19979;&#26631;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="br0">[</span>E2<span class="br0">]</span></span></span> <span class="t-rev-inl t-since-cxx17"><span>&#38500;&#20102;<a href="cpp-language-eval_order.html">&#27714;&#20540;&#39034;&#24207;</a>&#20043;&#22806;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#19982;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span><span class="br0">(</span>E1 <span class="sy2">+</span> E2<span class="br0">)</span></span></span> &#20005;&#26684;&#31561;&#21516;&#65292;&#23601;&#26159;&#35828;&#65292;&#23427;&#36981;&#24490;<a href="cpp-language-operator_arithmetic.html">&#25351;&#38024;&#31639;&#26415;</a>&#30340;&#35268;&#21017;&#65292;&#23558;&#25351;&#38024;&#25805;&#20316;&#25968;&#65288;&#21487;&#20197;&#26159;&#25968;&#32452;&#21040;&#25351;&#38024;&#36716;&#25442;&#30340;&#32467;&#26524;&#65292;&#20294;&#23427;&#24517;&#39035;&#25351;&#21521;&#26576;&#25968;&#32452;&#30340;&#20803;&#32032;&#25110;&#26411;&#23614;&#21518;&#19968;&#20301;&#32622;&#65289;&#35843;&#25972;&#20026;&#25351;&#21521;&#21516;&#25968;&#32452;&#30340;&#21478;&#19968;&#20803;&#32032;&#65292;&#28982;&#21518;&#20877;&#36827;&#34892;&#35299;&#24341;&#29992;&#12290;</p>
<p>&#24212;&#29992;&#21040;&#25968;&#32452;&#26102;&#65292;<span class="t-rev-inl t-since-cxx11"><span>&#33509;&#25968;&#32452;&#20026;&#24038;&#20540;&#65292;&#21017;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#19979;&#26631;&#34920;&#36798;&#24335;&#20026;<a href="cpp-language-value_category.html">&#24038;&#20540;</a><span class="t-rev-inl t-since-cxx11"><span>&#65292;&#21542;&#21017;&#20026;<a href="cpp-language-value_category.html">&#20129;&#20540;</a></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#12290;</p>
<p>&#24212;&#29992;&#21040;&#25351;&#38024;&#26102;&#65292;&#19979;&#26631;&#34920;&#36798;&#24335;&#22987;&#32456;&#26159;&#24038;&#20540;&#12290;</p>
<p>&#31867;&#22411; <code>T</code> &#19981;&#24471;&#20026;<a href="cpp-language-incomplete_type.html" class="mw-redirect">&#19981;&#23436;&#25972;&#31867;&#22411;</a>&#65292;&#21363;&#20351;&#22987;&#32456;&#19981;&#20250;&#20351;&#29992; <code>T</code> &#30340;&#22823;&#23567;&#25110;&#20854;&#20869;&#37096;&#32467;&#26500;&#20063;&#26159;&#22914;&#27492;&#65292;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span>x<span class="br0">[</span><span class="nu0">0</span><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;<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">&#36887;&#21495;&#34920;&#36798;&#24335;</a>&#20026;&#19979;&#26631;&#36816;&#31639;&#31526;&#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;<a href="cpp-language-operator_other.html#.E5.86.85.E5.BB.BA.E7.9A.84.E9.80.97.E5.8F.B7.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#36887;&#21495;&#34920;&#36798;&#24335;</a>&#19981;&#33021;&#20026;&#19979;&#26631;&#36816;&#31639;&#31526;&#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>
<p>&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#23545;&#20110;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#23545;&#20110;&#27599;&#20010;&#23545;&#35937;&#31867;&#22411; <code>T</code>&#65288;&#21487;&#26377; cv &#38480;&#23450;&#65289;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#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">T<span class="sy3">&amp;</span> operator<span class="br0">[</span><span class="br0">]</span><span class="br0">(</span>T<span class="sy2">*</span>, <a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a><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">T<span class="sy3">&amp;</span> operator<span class="br0">[</span><span class="br0">]</span><span class="br0">(</span><a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a>, T<span class="sy2">*</span><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>
<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> a<span class="br0">[</span><span class="nu0">4</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="nu0">4</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="sy3">&amp;</span>a<span class="br0">[</span><span class="nu0">2</span><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> p<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy1">&lt;&lt;</span> p<span class="br0">[</span><span class="sy2">-</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy1">&lt;&lt;</span> <span class="nu0">1</span><span class="br0">[</span>p<span class="br0">]</span> <span class="sy1">&lt;&lt;</span> <span class="br0">(</span><span class="sy2">-</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">[</span>p<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>
<a href="cpp-container-map.html"><span class="kw1281">std::<span class="me2">map</span></span></a><span class="sy1">&lt;</span><a href="cpp-utility-pair.html"><span class="kw1096">std::<span class="me2">pair</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, <span class="kw4">int</span><span class="sy1">&gt;</span>, <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy1">&gt;</span> m<span class="sy4">;</span>
m<span class="br0">[</span><span class="br0">{</span><span class="nu0">1</span>, <span class="nu0">2</span><span class="br0">}</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&quot;abc&quot;</span><span class="sy4">;</span> <span class="co1">// &#20351;&#29992; [{...}] &#29256;&#26412;</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">4242</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E9.97.B4.E6.8E.A5.E5.AF.BB.E5.9D.80.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#38388;&#25509;&#23547;&#22336;&#36816;&#31639;&#31526;</span></h4>
<p>&#38388;&#25509;&#23547;&#22336;&#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"><code><b>*</b></code> <span class="t-spar">&#34920;&#36798;&#24335;</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>&#20869;&#24314;&#38388;&#25509;&#23547;&#22336;&#36816;&#31639;&#31526;&#30340;&#25805;&#20316;&#25968;&#24517;&#39035;&#26159;&#23545;&#35937;&#25351;&#38024;&#25110;&#20989;&#25968;&#25351;&#38024;&#65292;&#20854;&#32467;&#26524;&#23601;&#26159; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#25152;&#25351;&#21521;&#30340;&#25351;&#38024;&#25110;&#20989;&#25968;&#12290;</p>
<p>&#25351;&#21521;&#65288;&#21487;&#26377; <a href="cpp-language-cv.html">cv</a> &#38480;&#23450;&#65289;&#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#30340;&#25351;&#38024;&#19981;&#33021;&#35299;&#24341;&#29992;&#12290;&#25351;&#21521;&#20854;&#20182;&#19981;&#23436;&#25972;&#31867;&#22411;&#30340;&#25351;&#38024;&#21487;&#20197;&#35299;&#24341;&#29992;&#65292;&#20294;&#20135;&#29983;&#30340;&#24038;&#20540;&#21482;&#33021;&#22312;&#20801;&#35768;&#19981;&#23436;&#25972;&#31867;&#22411;&#30340;&#35821;&#22659;&#20013;&#20351;&#29992;&#65292;&#20363;&#22914;&#21021;&#22987;&#21270;&#19968;&#20010;&#24341;&#29992;&#12290;</p>
<p>&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#23545;&#20110;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#23545;&#20110;&#27599;&#20010;&#35201;&#20040;&#20026;&#65288;&#21487;&#26377; cv &#38480;&#23450;&#30340;&#65289;&#23545;&#35937;&#31867;&#22411;&#35201;&#20040;&#20026;&#65288;&#26410;&#34987; const &#25110;&#24341;&#29992;&#38480;&#23450;&#30340;&#65289;&#20989;&#25968;&#31867;&#22411;&#30340;&#31867;&#22411; <code>T</code>&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#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">T<span class="sy3">&amp;</span> operator<span class="sy2">*</span><span class="br0">(</span>T<span class="sy2">*</span><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>
<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> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">42</span><span class="sy4">;</span> <span class="br0">}</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><span class="sy2">*</span> pn <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span>
<span class="kw4">int</span><span class="sy3">&amp;</span> r <span class="sy1">=</span> <span class="sy2">*</span>pn<span class="sy4">;</span> <span class="co1">// &#24038;&#20540;&#21487;&#20197;&#32465;&#23450;&#21040;&#24341;&#29992;</span>
<span class="kw4">int</span> m <span class="sy1">=</span> <span class="sy2">*</span>pn<span class="sy4">;</span> <span class="co1">// &#38388;&#25509;&#23547;&#22336; + &#24038;&#20540;&#21040;&#21491;&#20540;&#36716;&#25442;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>fp<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>f<span class="sy4">;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy3">&amp;</span>fr<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy2">*</span>fp<span class="sy4">;</span> <span class="co1">// &#20989;&#25968;&#24038;&#20540;&#21487;&#20197;&#32465;&#23450;&#21040;&#24341;&#29992;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E5.8F.96.E5.9C.B0.E5.9D.80.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#21462;&#22320;&#22336;&#36816;&#31639;&#31526;</span></h4>
<p>&#21462;&#22320;&#22336;&#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><code><b>&amp;</b></code> <span class="t-spar">&#34920;&#36798;&#24335;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>&amp;</b></code> <span class="t-spar">&#31867;</span> <code><b>::</b></code> <span class="t-spar">&#25104;&#21592;</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#24403;&#25805;&#20316;&#25968;&#26159;&#26576;&#20010;&#23545;&#35937;&#25110;&#20989;&#25968;&#31867;&#22411; <code>T</code> &#30340;&#24038;&#20540;&#34920;&#36798;&#24335;&#26102;&#65292;<code>operator&amp;</code> &#21019;&#24314;&#24182;&#36820;&#22238;&#19968;&#20010;&#26377;&#30456;&#21516; cv &#38480;&#23450;&#30340; <code>T*</code> &#31867;&#22411;&#30340;&#32431;&#21491;&#20540;&#65292;&#24182;&#25351;&#21521;&#30001;&#35813;&#25805;&#20316;&#25968;&#25152;&#20195;&#34920;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#12290;&#24403;&#20854;&#25805;&#20316;&#25968;&#20855;&#26377;&#19981;&#23436;&#25972;&#31867;&#22411;&#26102;&#65292;&#21487;&#20197;&#26500;&#25104;&#25351;&#38024;&#65292;&#20294;&#33509;&#35813;&#19981;&#23436;&#25972;&#31867;&#22411;&#24688;&#22909;&#20026;&#26576;&#20010;&#23450;&#20041;&#20102;&#20854;&#33258;&#36523;&#30340; <code>operator&amp;</code> &#30340;&#31867;&#65292;&#21017;&#20351;&#29992;&#20869;&#24314;&#36824;&#26159;&#37325;&#36733;&#36816;&#31639;&#31526;&#26159;&#26410;&#25351;&#26126;&#30340;&#12290;&#23545;&#20110;&#20854;&#31867;&#22411;&#24102;&#26377;&#29992;&#25143;&#23450;&#20041;&#30340; <code>operator&amp;</code> &#30340;&#25805;&#20316;&#25968;&#65292;&#21487;&#20197;&#20351;&#29992; <span class="t-lc"><a href="cpp-memory-addressof.html">std::addressof</a></span> &#26469;&#33719;&#21462;&#30495;&#27491;&#30340;&#25351;&#38024;&#12290;&#27880;&#24847;&#65292;&#36825;&#21644; C99 &#20197;&#21450;&#20854;&#21518;&#30340; C &#35821;&#35328;&#29256;&#26412;&#19981;&#21516;&#65292;&#19981;&#23384;&#22312;&#23545;&#19968;&#20803; <code>operator*</code> &#36816;&#31639;&#31526;&#30340;&#36816;&#31639;&#32467;&#26524;&#24212;&#29992;&#19968;&#20803; <code>operator&amp;</code> &#36816;&#31639;&#31526;&#30340;&#29305;&#27530;&#24773;&#20917;&#12290;</div>
<div class="t-li1"><span class="t-li"></span> &#24403;&#20854;&#25805;&#20316;&#25968;&#20026;&#37325;&#36733;&#20989;&#25968;&#30340;&#21517;&#23383;&#26102;&#65292;&#20165;&#24403;&#26681;&#25454;&#20854;&#35821;&#22659;&#21487;&#20197;&#35299;&#26512;&#36825;&#20010;&#37325;&#36733;&#26102;&#25165;&#33021;&#21462;&#24471;&#20854;&#22320;&#22336;&#12290;&#35814;&#32454;&#35828;&#26126;&#21442;&#35265;<a href="cpp-language-overloaded_address.html">&#37325;&#36733;&#20989;&#25968;&#30340;&#22320;&#22336;</a>&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> &#24403;&#20854;&#25805;&#20316;&#25968;&#20026;&#38750;&#38745;&#24577;&#25104;&#21592;&#30340;&#38480;&#23450;&#21517;&#65288;&#27604;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span>C<span class="sy4">::</span><span class="me2">member</span></span></span>&#65289;&#26102;&#65292;&#20854;&#32467;&#26524;&#20026; <code>C</code> &#31867;&#20013;&#30340; <code>T</code> &#31867;&#22411;&#30340;<a href="cpp-language-pointer.html#.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E6.8C.87.E9.92.88">&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;</a>&#25110;<a href="cpp-language-pointer.html#.E6.95.B0.E6.8D.AE.E6.88.90.E5.91.98.E6.8C.87.E9.92.88">&#25968;&#25454;&#25104;&#21592;&#25351;&#38024;</a>&#30340;&#32431;&#21491;&#20540;&#12290;&#27880;&#24847;&#65292;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span>member</span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp">C<span class="sy4">::</span><span class="me2">member</span></span></span>&#65292;&#29978;&#33267; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span><span class="br0">(</span>C<span class="sy4">::</span><span class="me2">member</span><span class="br0">)</span></span></span> &#37117;&#19981;&#33021;&#29992;&#20110;&#21021;&#22987;&#21270;&#25104;&#21592;&#25351;&#38024;&#12290;</div>
<p>&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#23545;&#20110;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#27492;&#36816;&#31639;&#31526;&#19981;&#24341;&#20837;&#20219;&#20309;&#39069;&#22806;&#20989;&#25968;&#31614;&#21517;&#65306;&#33509;&#23384;&#22312;&#20316;&#20026;<a href="cpp-language-overload_resolution.html#.E5.8F.AF.E8.A1.8C.E5.87.BD.E6.95.B0">&#21487;&#34892;&#20989;&#25968;</a>&#30340;&#37325;&#36733; <code>operator&amp;</code>&#65292;&#21017;&#20869;&#24314;&#30340;&#21462;&#22336;&#36816;&#31639;&#31526;&#19981;&#36866;&#29992;&#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="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
<span class="kw1">struct</span> A <span class="br0">{</span> <span class="kw4">int</span> i<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> B <span class="br0">{</span> <span class="kw4">void</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</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="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> pn <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span> <span class="co1">// &#25351;&#38024;</span>
<span class="kw4">int</span><span class="sy2">*</span> pn2 <span class="sy1">=</span> <span class="sy3">&amp;</span><span class="sy2">*</span>pn<span class="sy4">;</span> <span class="co1">// pn2 == pn</span>
<span class="kw4">int</span> A<span class="sy4">::</span><span class="sy2">*</span> mp <span class="sy1">=</span> <span class="sy3">&amp;</span>A<span class="sy4">::</span><span class="me2">i</span><span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;</span>
<span class="kw4">void</span> <span class="br0">(</span>B<span class="sy4">::</span><span class="sy2">*</span>mpf<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>B<span class="sy4">::</span><span class="me2">f</span><span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;</span>
<span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span>pf<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>f<span class="sy4">;</span> <span class="co1">// &#26681;&#25454;&#21021;&#22987;&#21270;&#35821;&#22659;&#36827;&#34892;&#37325;&#36733;&#20915;&#35758;</span>
<span class="co1">// auto pf2 = &amp;f; // &#38169;&#35823;&#65306;&#37325;&#36733;&#20989;&#25968;&#31867;&#22411;&#26377;&#27495;&#20041;</span>
<span class="kw4">auto</span> pf2 <span class="sy1">=</span> <span class="kw1">static_cast</span><span class="sy1">&lt;</span><span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy1">&gt;</span><span class="br0">(</span><span class="sy3">&amp;</span>f<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#30001;&#20110;&#36716;&#22411;&#36827;&#34892;&#37325;&#36733;&#20915;&#35758;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E6.88.90.E5.91.98.E8.AE.BF.E9.97.AE.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#25104;&#21592;&#35775;&#38382;&#36816;&#31639;&#31526;</span></h4>
<p>&#25104;&#21592;&#35775;&#38382;&#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><span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>.</b></code> <code><b>template</b></code><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#26631;&#35782;&#34920;&#36798;&#24335;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>-&gt;</b></code> <code><b>template</b></code><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#26631;&#35782;&#34920;&#36798;&#24335;</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>.</b></code> <span class="t-spar">&#20266;&#26512;&#26500;&#20989;&#25968;</span></td>
<td>(3)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>-&gt;</b></code> <span class="t-spar">&#20266;&#26512;&#26500;&#20989;&#25968;</span></td>
<td>(4)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#31532;&#19968;&#25805;&#20316;&#25968;&#24517;&#39035;&#26159;<a href="cpp-language-type.html#.E4.B8.8D.E5.AE.8C.E6.95.B4.E7.B1.BB.E5.9E.8B">&#23436;&#25972;&#31867;&#31867;&#22411;</a> <code>T</code> &#30340;&#34920;&#36798;&#24335;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> &#31532;&#19968;&#25805;&#20316;&#25968;&#24517;&#39035;&#26159;&#25351;&#21521;&#23436;&#25972;&#31867;&#31867;&#22411;&#30340;&#25351;&#38024; <code>T*</code> &#30340;&#34920;&#36798;&#24335;&#12290;</div>
<div class="t-li1"><span class="t-li">3,4)</span> &#31532;&#19968;&#25805;&#20316;&#25968;&#24517;&#39035;&#26159;&#26631;&#37327;&#31867;&#22411;&#34920;&#36798;&#24335;&#65288;&#35265;&#19979;&#25991;&#65289;&#12290;</div>
<p>&#20004;&#31181;&#36816;&#31639;&#31526;&#30340;&#31532;&#19968;&#20010;&#25805;&#20316;&#25968;&#37117;&#34987;&#27714;&#20540;&#65292;&#21363;&#20415;&#23427;&#24182;&#19981;&#26159;&#24517;&#39035;&#30340;&#65288;&#27604;&#22914;&#20854;&#31532;&#20108;&#20010;&#25805;&#20316;&#25968;&#25351;&#21517;&#30340;&#26159;&#38745;&#24577;&#25104;&#21592;&#65289;&#12290;</p>
<p>&#20004;&#20010;&#36816;&#31639;&#31526;&#30340;&#31532;&#20108;&#20010;&#25805;&#20316;&#25968;&#26159; <code>T</code> &#25110; <code>T</code> &#30340;&#26576;&#20010;&#26080;&#27495;&#20041;&#19988;&#21487;&#35775;&#38382;&#30340;&#22522;&#31867; <code>B</code> &#30340;&#25968;&#25454;&#25104;&#21592;&#25110;&#25104;&#21592;&#20989;&#25968;&#30340;&#21517;&#23383;&#65288;&#27491;&#24335;&#30340;&#35828;&#27861;&#26159;<a href="cpp-language-identifiers.html#.E5.9C.A8.E8.A1.A8.E8.BE.BE.E5.BC.8F.E4.B8.AD">&#26631;&#35782;&#34920;&#36798;&#24335;&#65288;id-expression&#65289;</a>&#65289;&#65288;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="me1">E2</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="sy2">-</span><span class="sy1">&gt;</span>E2</span></span>&#65289;&#65292;&#24182;&#21487;&#36873;&#22320;<a href="cpp-language-identifiers.html#.E6.9C.89.E9.99.90.E5.AE.9A.E7.9A.84.E6.A0.87.E8.AF.86.E7.AC.A6">&#26377;&#38480;&#23450;</a>&#65288;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="me1">B</span><span class="sy4">::</span><span class="me2">E2</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="sy2">-</span><span class="sy1">&gt;</span>B<span class="sy4">::</span><span class="me2">E2</span></span></span>&#65289;&#65292;&#21487;&#36873;&#22320;&#20351;&#29992; <a href="cpp-language-dependent_name.html">template &#27495;&#20041;&#28040;&#35299;&#31526;</a>&#65288;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="kw1">template</span> E2</span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="sy2">-</span><span class="sy1">&gt;</span><span class="kw1">template</span> E2</span></span>&#65289;&#12290;</p>
<p>&#22914;&#26524;&#25552;&#20379;&#30340;&#26159;&#29992;&#25143;&#23450;&#20041;&#30340; <code>operator-&gt;</code>&#65292;&#21017;&#36882;&#24402;&#22320;&#23545;&#20854;&#25152;&#36820;&#22238;&#30340;&#20540;&#20877;&#27425;&#35843;&#29992; <code>operator-&gt;</code>&#65292;&#30452;&#21040;&#21040;&#36798;&#36820;&#22238;&#26222;&#36890;&#25351;&#38024;&#30340; <code>operator-&gt;</code> &#20026;&#27490;&#12290;&#20043;&#21518;&#20877;&#23545;&#36825;&#20010;&#25351;&#38024;&#37319;&#29992;&#20869;&#24314;&#35821;&#20041;&#12290;</p>
<p>&#23545;&#20110;&#20869;&#24314;&#31867;&#22411;&#65292;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="sy2">-</span><span class="sy1">&gt;</span>E2</span></span> &#20005;&#26684;&#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>E1<span class="br0">)</span>.<span class="me1">E2</span></span></span>&#65307;&#22240;&#27492;&#20197;&#19979;&#35268;&#21017;&#20165;&#22788;&#29702;&#20102; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="me1">E2</span></span></span> &#30340;&#24773;&#24418;&#12290;</p>
<p>&#22312;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="me1">E2</span></span></span> &#20013;&#65306;</p>
<div class="t-li1"><span class="t-li">1)</span> &#24403; <code>E2</code> &#20026;<a href="cpp-language-static.html">&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;</a>&#26102;&#65306;
<ul>
<li>&#22914;&#26524; <code>E2</code> &#20855;&#26377;&#24341;&#29992;&#31867;&#22411; <code>T&amp;</code> &#25110; <code>T&amp;&amp;</code>&#65292;&#21017;&#20854;&#32467;&#26524;&#20026; <code>T</code> &#31867;&#22411;&#30340;&#24038;&#20540;&#65292;&#20195;&#34920; <code>E2</code> &#25152;&#20195;&#34920;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#65292;</li>
<li>&#21542;&#21017;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920;&#35813;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;&#24038;&#20540;&#12290;</li>
</ul>
<dl>
<dd>&#22522;&#26412;&#19978;&#65292;&#36825;&#20004;&#31181;&#24773;&#20917;&#19979; <code>E1</code> &#22343;&#34987;&#27714;&#20540;&#38543;&#21363;&#34987;&#20002;&#24323;&#65307;</dd>
</dl>
</div>
<div class="t-li1"><span class="t-li">2)</span> &#24403; <code>E2</code> &#20026;<a href="cpp-language-data_members.html">&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;</a>&#26102;&#65306;
<ul>
<li>&#22914;&#26524; <code>E2</code> &#20855;&#26377;&#24341;&#29992;&#31867;&#22411; <code>T&amp;</code> &#25110; <code>T&amp;&amp;</code>&#65292;&#21017;&#20854;&#32467;&#26524;&#20026; <code>T</code> &#31867;&#22411;&#30340;&#24038;&#20540;&#65292;&#20195;&#34920; <code>E2</code> &#25152;&#20195;&#34920;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#65292;</li>
<li>&#21542;&#21017;&#65292;&#22914;&#26524; <code>E1</code> &#20026;&#24038;&#20540;&#65292;&#21017;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920; <code>E1</code> &#30340;&#36825;&#20010;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;&#24038;&#20540;&#65292;</li>
<li>&#21542;&#21017;&#65288;<code>E1</code> &#20026;<span class="t-rev-inl t-until-cxx17"><span>&#21491;&#20540;</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>&#20129;&#20540;&#65288;&#21487;&#33021;&#26159;&#20174;&#32431;&#21491;&#20540;<a href="cpp-language-implicit_conversion.html#.E4.B8.B4.E6.97.B6.E9.87.8F.E5.AE.9E.E8.B4.A8.E5.8C.96">&#23454;&#36136;&#21270;</a>&#32780;&#26469;&#65289;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#65289;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920; <code>E1</code> &#30340;&#36825;&#20010;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;<span class="t-rev-inl t-until-cxx11"><span>&#21491;&#20540;</span> <span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx11"><span>&#20129;&#20540;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#12290;</li>
</ul>
<dl>
<dd>&#33509; <code>E2</code> &#19981;&#26159; mutable &#25104;&#21592;&#65292;&#21017;&#32467;&#26524;&#30340; <a href="cpp-language-cv.html">cv &#38480;&#23450;&#24615;</a>&#26159; <code>E1</code> &#21644; <code>E2</code> &#30340; cv &#38480;&#23450;&#24615;&#30340;&#21512;&#24182;&#65292;&#21542;&#21017;&#65288;<code>E2</code> &#26159; mutable &#25104;&#21592;&#65289;&#20026; <code>E1</code> &#21644; <code>E2</code> &#30340; volatile &#38480;&#23450;&#24615;&#30340;&#21512;&#24182;&#65307;</dd>
</dl>
</div>
<div class="t-li1"><span class="t-li">3)</span> &#24403; <code>E2</code> &#20026;<a href="cpp-language-static.html">&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;</a>&#26102;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920;&#35813;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#30340;&#24038;&#20540;&#12290;&#22522;&#26412;&#19978;&#65292;&#36825;&#31181;&#24773;&#20917;&#19979; <code>E1</code> &#34987;&#27714;&#20540;&#38543;&#21363;&#34987;&#20002;&#24323;&#65307;</div>
<div class="t-li1"><span class="t-li">4)</span> &#24403; <code>E2</code> &#20026;&#65288;&#21253;&#25324;<a href="cpp-language-destructor.html">&#26512;&#26500;&#20989;&#25968;</a>&#22312;&#20869;&#30340;&#65289;<a href="cpp-language-member_functions.html">&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;</a>&#26102;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920; <code>E1</code> &#30340;&#36825;&#20010;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#30340;&#19968;&#31181;&#29305;&#27530;&#30340;&#32431;&#21491;&#20540;&#65292;&#23427;&#21482;&#33021;&#29992;&#20316;&#25104;&#21592;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#30340;&#24038;&#25805;&#20316;&#25968;&#65292;&#32780;&#19981;&#33021;&#29992;&#20110;&#20854;&#20182;&#30446;&#30340;&#65307;</div>
<div class="t-li1"><span class="t-li">5)</span> &#24403; <code>E2</code> &#20026;&#25104;&#21592;&#26522;&#20030;&#39033;&#26102;&#65292;&#20854;&#32467;&#26524;&#20026;&#31561;&#20110; <code>E1</code> &#30340;&#36825;&#20010;&#25104;&#21592;&#26522;&#20030;&#39033;&#30340;&#32431;&#21491;&#20540;&#65307;</div>
<div class="t-li1"><span class="t-li">6)</span> &#24403; <code>E2</code> &#20026;<a href="cpp-language-nested_classes.html" class="mw-redirect">&#23884;&#22871;&#31867;&#22411;</a>&#26102;&#65292;&#31243;&#24207;&#38750;&#33391;&#26500;&#65288;&#26080;&#27861;&#32534;&#35793;&#65289;&#65307;</div>
<div class="t-li1"><span class="t-li">7)</span> &#24403; <code>E1</code> &#20026;<a href="cpp-language-type.html">&#26631;&#37327;&#31867;&#22411;</a>&#32780; <code>E2</code> &#20026;&#19968;&#20010; <code><b>~</b></code> &#20043;&#21518;&#36319;&#30528;&#20195;&#34920;&#65288;&#31227;&#38500; cv &#38480;&#23450;&#21518;&#65289;&#30456;&#21516;&#31867;&#22411;&#30340;<a href="cpp-language-type.html#.E7.B1.BB.E5.9E.8B.E7.9A.84.E5.91.BD.E5.90.8D">&#31867;&#22411;&#21517;</a>&#25110; <a href="cpp-language-decltype.html">decltype &#35828;&#26126;&#31526;</a>&#65292;&#21487;&#36873;&#22320;<a href="cpp-language-identifiers.html#.E6.9C.89.E9.99.90.E5.AE.9A.E7.9A.84.E6.A0.87.E8.AF.86.E7.AC.A6">&#26377;&#38480;&#23450;</a>&#26102;&#65292;&#20854;&#32467;&#26524;&#20026;&#19968;&#31181;&#29305;&#27530;&#30340;&#32431;&#21491;&#20540;&#65292;&#23427;&#21482;&#33021;&#29992;&#20316;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#30340;&#24038;&#25805;&#20316;&#25968;&#65292;&#32780;&#19981;&#33021;&#29992;&#20110;&#20854;&#20182;&#30446;&#30340;&#12290;&#25152;&#26500;&#25104;&#30340;&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#34987;&#31216;&#20026;<i>&#20266;&#26512;&#26500;&#20989;&#25968;&#35843;&#29992;&#65288;pseudo destructor call&#65289;</i>&#12290;&#23427;&#19981;&#25509;&#21463;&#20219;&#20309;&#23454;&#21442;&#65292;&#36820;&#22238; void &#65292;&#27714;&#20540; <code>E1</code> &#21518;&#32467;&#26463;&#20854;&#32467;&#26524;&#23545;&#35937;&#30340;&#29983;&#23384;&#26399;&#12290;&#36825;&#26159;&#21807;&#19968;&#20351; <code>operator.</code> &#30340;&#24038;&#25805;&#20316;&#25968;&#20855;&#26377;&#38750;&#31867;&#31867;&#22411;&#30340;&#24773;&#24418;&#12290;&#20801;&#35768;&#36827;&#34892;&#20266;&#26512;&#26500;&#20989;&#25968;&#35843;&#29992;&#65292;&#20351;&#24471;&#32534;&#20889;&#20195;&#30721;&#26102;&#26080;&#39035;&#20102;&#35299;&#26576;&#20010;&#32473;&#23450;&#31867;&#22411;&#26159;&#21542;&#23384;&#22312;&#26512;&#26500;&#20989;&#25968;&#25104;&#20026;&#21487;&#33021;&#12290;</div>
<p><code>operator.</code> &#19981;&#33021;&#37325;&#36733;&#65292;&#32780;&#23545;&#20110; <code>operator-&gt;</code> &#26469;&#35828;&#65292;&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#23545;&#20110;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#20869;&#24314;&#36816;&#31639;&#31526;&#19981;&#24341;&#20837;&#20219;&#20309;&#39069;&#22806;&#20989;&#25968;&#31614;&#21517;&#65306;&#33509;&#23384;&#22312;&#20316;&#20026;<a href="cpp-language-overload_resolution.html#.E5.8F.AF.E8.A1.8C.E5.87.BD.E6.95.B0">&#21487;&#34892;&#20989;&#25968;</a>&#30340;&#37325;&#36733; <code>operator&amp;</code>&#65292;&#21017;&#19981;&#37319;&#29992;&#20869;&#24314;&#30340; <code>operator-&gt;</code>&#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;iostream&gt;</span>
<span class="kw1">struct</span> P
<span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span>
<span class="kw4">static</span> T<span class="sy2">*</span> ptr<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> new T<span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> A
<span class="br0">{</span>
A<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span><span class="sy4">:</span> n<span class="br0">(</span>n<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
<span class="kw4">int</span> n<span class="sy4">;</span>
<span class="kw4">static</span> <span class="kw4">int</span> sn<span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">10</span> <span class="sy2">+</span> n<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">static</span> <span class="kw4">int</span> sf<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">4</span><span class="sy4">;</span> <span class="br0">}</span>
<span class="kw1">class</span> B <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw2">enum</span> E <span class="br0">{</span>RED <span class="sy1">=</span> <span class="nu0">1</span>, BLUE <span class="sy1">=</span> <span class="nu0">2</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> g<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">typedef</span> <span class="kw4">int</span> U<span class="sy4">;</span>
<span class="co1">// &#24453;&#20915;&#30340;&#27169;&#26495;&#25104;&#21592;&#38656;&#35201;&#20851;&#38190;&#35789; template</span>
<span class="kw4">int</span><span class="sy2">*</span> p <span class="sy1">=</span> P<span class="br0">(</span><span class="br0">)</span>.<span class="kw1">template</span> ptr<span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
p<span class="sy2">-</span><span class="sy1">&gt;</span>~U<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// U &#20026; int&#65292;&#35843;&#29992; int &#30340;&#20266;&#26512;&#26500;&#20989;&#25968;</span>
delete p<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw4">int</span> A<span class="sy1">&lt;</span>P<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">sn</span> <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
A<span class="sy1">&lt;</span>P<span class="sy1">&gt;</span> a<span class="br0">(</span><span class="nu0">1</span><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> a.<span class="me1">n</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span>
<span class="sy1">&lt;&lt;</span> a.<span class="me1">sn</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span> <span class="co1">// A::sn &#20063;&#21487;&#20197;</span>
<span class="sy1">&lt;&lt;</span> a.<span class="me1">f</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span>
<span class="sy1">&lt;&lt;</span> a.<span class="me1">sf</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span> <span class="co1">// A::sf() &#20063;&#21487;&#20197;</span>
<span class="co1">// &lt;&lt; a.B &lt;&lt; &#39; &#39; // &#38169;&#35823;&#65306;&#19981;&#20801;&#35768;&#23884;&#22871;&#31867;&#22411;</span>
<span class="sy1">&lt;&lt;</span> a.<span class="me1">RED</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span> <span class="co1">// &#26522;&#20030;&#39033;</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">1 2 11 4 1</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E6.88.90.E5.91.98.E6.8C.87.E9.92.88.E8.AE.BF.E9.97.AE.E8.BF.90.E7.AE.97.E7.AC.A6">&#20869;&#24314;&#30340;&#25104;&#21592;&#25351;&#38024;&#35775;&#38382;&#36816;&#31639;&#31526;</span></h4>
<p>&#36890;&#36807;&#25104;&#21592;&#25351;&#38024;&#36827;&#34892;&#30340;&#25104;&#21592;&#35775;&#38382;&#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><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <code><b>.*</b></code> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <code><b>-&gt;*</b></code> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> <span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> &#24517;&#39035;&#26159;&#31867;&#31867;&#22411; <code>T</code> &#30340;&#34920;&#36798;&#24335;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> <span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> &#24517;&#39035;&#26159;&#25351;&#21521;&#31867;&#31867;&#22411;&#25351;&#38024; <code>T*</code> &#30340;&#34920;&#36798;&#24335;&#12290;</div>
<p>&#20004;&#20010;&#36816;&#31639;&#31526;&#30340;&#31532;&#20108;&#25805;&#20316;&#25968;&#37117;&#26159;&#31867;&#22411;&#20026;&#25351;&#21521; <code>T</code> &#30340;&#65288;<a href="cpp-language-pointer.html#.E6.95.B0.E6.8D.AE.E6.88.90.E5.91.98.E6.8C.87.E9.92.88">&#25968;&#25454;</a>&#25110;<a href="cpp-language-pointer.html#.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E6.8C.87.E9.92.88">&#20989;&#25968;</a>&#65289;&#25104;&#21592;&#25351;&#38024;&#31867;&#22411;&#65292;&#25110;&#20026;&#25351;&#21521; <code>T</code> &#30340;&#26080;&#27495;&#20041;&#19988;&#21487;&#35775;&#38382;&#22522;&#31867; <code>B</code> &#25104;&#21592;&#25351;&#38024;&#31867;&#22411;&#30340;&#34920;&#36798;&#24335;&#12290;</p>
<p>&#23545;&#20110;&#20869;&#24314;&#31867;&#22411;&#65292;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>E2</span></span> &#20005;&#26684;&#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>E1<span class="br0">)</span>.<span class="sy2">*</span>E2</span></span>&#65307;&#22240;&#27492;&#20197;&#19979;&#35268;&#21017;&#20165;&#22788;&#29702;&#20102; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="sy2">*</span>E2</span></span> &#30340;&#24773;&#24418;&#12290;</p>
<p>&#22312;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1.<span class="sy2">*</span>E2</span></span> &#20013;&#65306;</p>
<div class="t-li1"><span class="t-li">1)</span> &#24403; <code>E2</code> &#20026;&#25351;&#21521;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#26102;&#65292;
<ul>
<li>&#22914;&#26524; <code>E1</code> &#20026;&#24038;&#20540;&#65292;&#21017;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920;&#36825;&#20010;&#25104;&#21592;&#30340;&#24038;&#20540;&#65292;</li>
<li>&#21542;&#21017;&#65288;<code>E1</code> &#20026;<span class="t-rev-inl t-until-cxx17"><span>&#21491;&#20540;</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>&#20129;&#20540;&#65288;&#21487;&#33021;&#26159;&#20174;&#32431;&#21491;&#20540;<a href="cpp-language-implicit_conversion.html#.E4.B8.B4.E6.97.B6.E9.87.8F.E5.AE.9E.E8.B4.A8.E5.8C.96">&#23454;&#36136;&#21270;</a>&#32780;&#26469;&#65289;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#65289;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920;&#36825;&#20010;&#25968;&#25454;&#25104;&#21592;&#30340;<span class="t-rev-inl t-until-cxx11"><span>&#21491;&#20540;</span> <span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx11"><span>&#20129;&#20540;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#65307;</li>
</ul>
</div>
<div class="t-li1"><span class="t-li">2)</span> &#24403; <code>E2</code> &#20026;&#25351;&#21521;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;&#26102;&#65292;&#20854;&#32467;&#26524;&#20026;&#20195;&#34920;&#36825;&#20010;&#25104;&#21592;&#20989;&#25968;&#30340;&#19968;&#31181;&#29305;&#27530;&#30340;&#32431;&#21491;&#20540;&#65292;&#23427;&#21482;&#33021;&#29992;&#20316;&#25104;&#21592;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#30340;&#24038;&#36816;&#31639;&#25968;&#65292;&#32780;&#19981;&#33021;&#29992;&#20110;&#20854;&#20182;&#30446;&#30340;&#65307;</div>
<div class="t-li1"><span class="t-li">3)</span> cv &#38480;&#23450;&#24615;&#30340;&#35268;&#21017;&#19982;&#23545;&#35937;&#30340;&#25104;&#21592;&#36816;&#31639;&#31526;&#30456;&#21516;&#65292;&#20294;&#26377;&#19968;&#26465;&#39069;&#22806;&#35268;&#21017;&#65306;&#25351;&#20195; mutable &#25104;&#21592;&#30340;&#25104;&#21592;&#25351;&#38024;&#19981;&#33021;&#29992;&#20110;&#25913;&#21160; const &#23545;&#35937;&#20013;&#30340;&#36825;&#20010;&#25104;&#21592;&#65307;</div>
<div class="t-li1"><span class="t-li">4)</span> &#24403; <code>E2</code> &#20026;&#31354;&#25104;&#21592;&#25351;&#38024;&#20540;&#26102;&#65292;&#20854;&#34892;&#20026;&#26410;&#23450;&#20041;&#65307;</div>
<div class="t-li1"><span class="t-li">5)</span> &#24403; <code>E1</code> &#30340;<a href="cpp-language-type.html#.E5.8A.A8.E6.80.81.E7.B1.BB.E5.9E.8B">&#21160;&#24577;&#31867;&#22411;</a>&#24182;&#19981;&#21253;&#21547; <code>E2</code> &#25152;&#25351;&#20195;&#30340;&#25104;&#21592;&#26102;&#65292;&#20854;&#34892;&#20026;&#26410;&#23450;&#20041;&#65307;</div>
<div class="t-li1"><span class="t-li">6)</span> &#24403; <code>E1</code> &#20026;&#21491;&#20540;&#32780; <code>E2</code> &#25351;&#21521;&#24102;&#26377;&#24341;&#29992;&#38480;&#23450;&#31526; &amp; &#30340;&#25104;&#21592;&#20989;&#25968;&#26102;&#65292;&#31243;&#24207;&#38750;&#33391;&#26500;<span class="t-rev-inl t-since-cxx20"><span>&#65292;&#38500;&#38750;&#35813;&#25104;&#21592;&#20989;&#25968;&#20134;&#20026; <code>const</code> &#38480;&#23450;&#20294;&#38750; <code>volatile</code> &#38480;&#23450;</span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>&#65307;</div>
<div class="t-li1"><span class="t-li">7)</span> &#24403; <code>E1</code> &#20026;&#24038;&#20540;&#32780; <code>E2</code> &#25351;&#21521;&#24102;&#26377;&#24341;&#29992;&#38480;&#23450;&#31526; &amp;&amp; &#30340;&#25104;&#21592;&#20989;&#25968;&#26102;&#65292;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</div>
<p>&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#23545;&#20110;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#23545;&#20110;&#27599;&#20010;&#31867;&#22411; <code>D</code>, <code>B</code>, <code>R</code> &#30340;&#32452;&#21512;&#65292;&#20854;&#20013;&#31867;&#31867;&#22411; <code>B</code> &#26159;&#19982; <code>D</code> &#30456;&#21516;&#30340;&#31867;&#25110; <code>D</code> &#30340;&#26080;&#27495;&#20041;&#19988;&#21487;&#35775;&#38382;&#22522;&#31867;&#65292;&#32780; <code>R</code> &#26159;&#23545;&#35937;&#25110;&#20989;&#25968;&#31867;&#22411;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#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">R<span class="sy3">&amp;</span> operator<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span><span class="br0">(</span>D<span class="sy2">*</span>, R B<span class="sy4">::</span><span class="sy2">*</span><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;&#20004;&#20010;&#25805;&#20316;&#25968;&#37117;&#21487;&#20197;&#26159; cv &#38480;&#23450;&#30340;&#65292;&#36825;&#31181;&#24773;&#20917;&#19979;&#36820;&#22238;&#31867;&#22411;&#30340; cv &#38480;&#23450;&#24615;&#26159;&#20010;&#25805;&#20316;&#25968;&#30340; cv &#38480;&#23450;&#24615;&#30340;&#21512;&#24182;&#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;iostream&gt;</span>
<span class="kw1">struct</span> S
<span class="br0">{</span>
S<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span><span class="sy4">:</span> mi<span class="br0">(</span>n<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
mutable <span class="kw4">int</span> mi<span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> mi <span class="sy2">+</span> n<span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> D<span class="sy4">:</span> <span class="kw1">public</span> S
<span class="br0">{</span>
D<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span><span class="sy4">:</span> S<span class="br0">(</span>n<span class="br0">)</span> <span class="br0">{</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="kw4">int</span> S<span class="sy4">::</span><span class="sy2">*</span> pmi <span class="sy1">=</span> <span class="sy3">&amp;</span>S<span class="sy4">::</span><span class="me2">mi</span><span class="sy4">;</span>
<span class="kw4">int</span> <span class="br0">(</span>S<span class="sy4">::</span><span class="sy2">*</span> pf<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>S<span class="sy4">::</span><span class="me2">f</span><span class="sy4">;</span>
<span class="kw4">const</span> S s<span class="br0">(</span><span class="nu0">7</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// s.*pmi = 10; // &#38169;&#35823;&#65306;&#26080;&#27861;&#36890;&#36807; mutable &#36827;&#34892;&#20462;&#25913;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> s.<span class="sy2">*</span>pmi <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
D d<span class="br0">(</span><span class="nu0">7</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22522;&#31867;&#30340;&#25351;&#38024;&#21487;&#20197;&#22312;&#27966;&#29983;&#31867;&#23545;&#35937;&#19978;&#24037;&#20316;</span>
D<span class="sy2">*</span> pd <span class="sy1">=</span> <span class="sy3">&amp;</span>d<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="br0">(</span>d.<span class="sy2">*</span>pf<span class="br0">)</span><span class="br0">(</span><span class="nu0">7</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span>
<span class="sy1">&lt;&lt;</span> <span class="br0">(</span>pd<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>pf<span class="br0">)</span><span class="br0">(</span><span class="nu0">8</span><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">7
14 15</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>&#35768;&#22810;&#26631;&#20934;&#23481;&#22120;&#31867;&#37117;&#37325;&#36733;&#20102;&#19979;&#26631;&#36816;&#31639;&#31526;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-bitset-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#25351;&#23450;&#30340;&#20301;<br />
<span class="t-mark">(<code>std::bitset&lt;N&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-memory-unique_ptr-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#25552;&#20379;&#21040;&#34987;&#31649;&#29702;&#25968;&#32452;&#30340;&#26377;&#32034;&#24341;&#35775;&#38382;<br />
<span class="t-mark">(<code>std::unique_ptr&lt;T,Deleter&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-string-basic_string-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#25351;&#23450;&#23383;&#31526;<br />
<span class="t-mark">(<code>std::basic_string&lt;CharT,Traits,Allocator&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-container-array-operator_at.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>&#35775;&#38382;&#25351;&#23450;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::array&lt;T,N&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-container-deque-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#25351;&#23450;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::deque&lt;T,Allocator&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-container-vector-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#25351;&#23450;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::vector&lt;T,Allocator&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-container-map-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#25110;&#25554;&#20837;&#25351;&#23450;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::map&lt;Key,T,Compare,Allocator&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-container-unordered_map-operator_at.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>&#35775;&#38382;&#25110;&#25554;&#20837;&#25351;&#23450;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::unordered_map&lt;Key,T,Hash,KeyEqual,Allocator&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-iterator-reverse_iterator-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#25353;&#32034;&#24341;&#35775;&#38382;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::reverse_iterator&lt;Iter&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-iterator-move_iterator-operator_at.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>&#25353;&#32034;&#24341;&#35775;&#38382;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::move_iterator&lt;Iter&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-valarray-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#33719;&#21462;/&#35774;&#32622; valarray &#25968;&#32452;&#20803;&#32032;&#12289;&#20999;&#29255;&#25110;&#25513;&#30721;<br />
<span class="t-mark">(<code>std::valarray&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-regex-match_results-operator_at.html"><span class="t-lines"><span>operator[]</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#23450;&#30340;&#23376;&#21305;&#37197;<br />
<span class="t-mark">(<code>std::match_results&lt;BidirIt,Alloc&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<p>&#35768;&#22810;&#36845;&#20195;&#22120;&#21644;&#26234;&#33021;&#25351;&#38024;&#31867;&#37117;&#37325;&#36733;&#20102;&#38388;&#25509;&#23547;&#22336;&#21644;&#25104;&#21592;&#36816;&#31639;&#31526;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-memory-unique_ptr-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#35299;&#24341;&#29992;&#25351;&#21521;&#34987;&#31649;&#29702;&#23545;&#35937;&#30340;&#25351;&#38024;<br />
<span class="t-mark">(<code>std::unique_ptr&lt;T,Deleter&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-memory-shared_ptr-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#35299;&#24341;&#29992;&#23384;&#20648;&#30340;&#25351;&#38024;<br />
<span class="t-mark">(<code>std::shared_ptr&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-memory-auto_ptr-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#34987;&#31649;&#29702;&#23545;&#35937;<br />
<span class="t-mark">(<code>std::auto_ptr&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-memory-raw_storage_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#35299;&#24341;&#29992;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(<code>std::raw_storage_iterator&lt;OutputIt,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-iterator-reverse_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#23545;&#36882;&#20943;&#21518;&#30340;&#24213;&#23618;&#36845;&#20195;&#22120;&#36827;&#34892;&#35299;&#24341;&#29992;<br />
<span class="t-mark">(<code>std::reverse_iterator&lt;Iter&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-iterator-back_insert_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#26080;&#25805;&#20316;<br />
<span class="t-mark">(<code>std::back_insert_iterator&lt;Container&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-iterator-front_insert_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#26080;&#25805;&#20316;<br />
<span class="t-mark">(<code>std::front_insert_iterator&lt;Container&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-iterator-insert_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#26080;&#25805;&#20316;<br />
<span class="t-mark">(<code>std::insert_iterator&lt;Container&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-iterator-move_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span><span class="t-mark-rev t-deprecated-cxx20">(C++20 &#20013;&#24323;&#29992;)</span></span></span></div>
</div>
</td>
<td>&#35775;&#38382;&#34987;&#25351;&#21521;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::move_iterator&lt;Iter&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-iterator-istream_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#24403;&#21069;&#20803;&#32032;<br />
<span class="t-mark">(<code>std::istream_iterator&lt;T,CharT,Traits,Distance&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-iterator-ostream_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#26080;&#25805;&#20316;<br />
<span class="t-mark">(<code>std::ostream_iterator&lt;T,CharT,Traits&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-iterator-istreambuf_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
<div><span class="t-lines"><span></span><span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></span></span></div>
</div>
</td>
<td>&#33719;&#24471;&#24403;&#21069;&#23383;&#31526;&#30340;&#21103;&#26412;<br />
&#33509; <code>CharT</code> &#25317;&#26377;&#25104;&#21592;&#65292;&#21017;&#35775;&#38382;&#24403;&#21069;&#23383;&#31526;&#30340;&#25104;&#21592;<br />
<span class="t-mark">(<code>std::istreambuf_iterator&lt;CharT,Traits&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-iterator-ostreambuf_iterator-operator*.html"><span class="t-lines"><span>operator*</span></span></a></div>
</div>
</td>
<td>&#26080;&#25805;&#20316;<br />
<span class="t-mark">(<code>std::ostreambuf_iterator&lt;CharT,Traits&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-regex-regex_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#24403;&#21069;&#21305;&#37197;<br />
<span class="t-mark">(<code>std::regex_iterator&lt;BidirIt,CharT,Traits&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-regex-regex_token_iterator-operator*.html"><span class="t-lines"><span>operator*</span><span>operator-&gt;</span></span></a></div>
</div>
</td>
<td>&#35775;&#38382;&#24403;&#21069;&#23376;&#21305;&#37197;<br />
<span class="t-mark">(<code>std::regex_token_iterator&lt;BidirIt,CharT,Traits&gt;</code> &#30340;&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<p>&#26631;&#20934;&#24211;&#20013;&#30340;&#31867;&#37117;&#27809;&#26377;&#37325;&#36733; <code>operator&amp;</code>&#12290;&#26368;&#20026;&#20154;&#25152;&#30693;&#30340;&#37325;&#36733; <code>operator&amp;</code> &#30340;&#20363;&#23376;&#26159;&#24494;&#36719;&#30340; COM &#31867; <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/31k6d0k7(v=vs.100).aspx">CComPtr</a>&#65292;&#20294;&#22312;&#22914; <a rel="nofollow" class="external text" href="http://www.boost.org/doc/libs/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html">boost.spirit</a> &#36825;&#26679;&#30340; EDSL &#20013;&#20063;&#20250;&#20986;&#29616;&#37325;&#36733;&#23427;&#30340;&#20363;&#23376;&#12290;</p>
<p>&#26631;&#20934;&#24211;&#20013;&#30340;&#31867;&#37117;&#27809;&#26377;&#37325;&#36733; <code>operator-&gt;*</code>&#12290;&#26366;&#26377;&#24314;&#35758;&#23558;&#20854;&#20316;&#20026;<a rel="nofollow" class="external text" href="http://www.aristeia.com/Papers/DDJ_Oct_1999.pdf">&#26234;&#33021;&#25351;&#38024;&#25509;&#21475;</a>&#30340;&#19968;&#37096;&#20998;&#65292;&#24182;&#22312; <a rel="nofollow" class="external text" href="http://www.boost.org/doc/libs/release/libs/phoenix/doc/html/phoenix/modules/operator.html#phoenix.modules.operator.member_pointer_operator">boost.phoenix</a> &#20013;&#30340; actor &#19978;&#26377;&#23454;&#38469;&#24212;&#29992;&#65292;&#20294;&#23427;&#22312;&#22914; <a rel="nofollow" class="external text" href="https://github.com/schlangster/cpp.react/blob/master/include/react/Signal.h#L557">cpp.react</a> &#36825;&#26679;&#30340; EDSL &#20013;&#26356;&#20026;&#24120;&#35265;&#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/issue1213">CWG 1213</a></td>
<td>C++11</td>
<td>&#25968;&#32452;&#21491;&#20540;&#30340;&#19979;&#26631;&#25805;&#20316;&#23548;&#33268;&#24038;&#20540;</td>
<td>&#37325;&#20998;&#31867;&#20026;&#20129;&#20540;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1458">CWG 1458</a></td>
<td>C++98</td>
<td>&#24212;&#29992; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span></span></span> &#21040;&#22768;&#26126; <span class="t-c"><span class="mw-geshi cpp source-cpp">operator<span class="sy3">&amp;</span></span></span> &#30340;&#19981;&#23436;&#25972;&#31867;&#22411;&#24038;&#20540;&#23548;&#33268;&#26410;&#23450;&#20041;&#34892;&#20026;</td>
<td>&#26410;&#25351;&#26126;&#20351;&#29992;&#21738;&#20010; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span></span></span></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><strong class="selflink">&#25104;&#21592;&#35775;&#38382;</strong></td>
<td><a href="cpp-language-operator_other.html">&#20854;&#20182;</a></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>