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

476 lines
67 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>&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;</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_unqualified_lookup skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;</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>&#26410;&#20986;&#29616;&#22312;&#20316;&#29992;&#22495;&#35299;&#26512;&#36816;&#31639;&#31526; <code><b>::</b></code> &#21491;&#36793;&#30340;&#21517;&#23383;&#26159;<i>&#26080;&#38480;&#23450;</i>&#21517;&#65292;&#20854;&#21517;&#23383;&#26597;&#25214;&#25353;&#19979;&#25991;&#25152;&#36848;&#26816;&#26597;&#21508;&#20010;<a href="cpp-language-scope.html">&#20316;&#29992;&#22495;</a>&#65292;&#30452;&#21040;&#20854;&#25214;&#21040;&#20219;&#20309;&#31181;&#31867;&#30340;&#33267;&#23569;&#19968;&#20010;&#22768;&#26126;&#26102;&#23601;&#20572;&#27490;&#26597;&#25214;&#65292;&#21363;&#19981;&#20877;&#32487;&#32493;&#26816;&#26597;&#21035;&#30340;&#20316;&#29992;&#22495;&#12290;&#65288;&#27880;&#24847;&#65306;&#22312;&#26576;&#20123;&#35821;&#22659;&#20013;&#25152;&#36827;&#34892;&#30340;&#26597;&#25214;&#20250;&#24573;&#30053;&#25481;&#19968;&#20123;&#22768;&#26126;&#65292;&#20363;&#22914;&#65292;&#23545;&#29992;&#22312; <code><b>::</b></code> &#24038;&#36793;&#30340;&#21517;&#23383;&#30340;&#26597;&#25214;&#23558;&#24573;&#30053;&#20989;&#25968;&#12289;&#21464;&#37327;&#21644;&#26522;&#20030;&#39033;&#30340;&#22768;&#26126;&#65292;&#32780;&#23545;&#29992;&#20316;&#22522;&#31867;&#35828;&#26126;&#31526;&#30340;&#21517;&#23383;&#30340;&#26597;&#25214;&#21017;&#20250;&#24573;&#30053;&#25152;&#26377;&#30340;&#38750;&#31867;&#22411;&#30340;&#22768;&#26126;&#12290;&#65289;</p>
<p>&#20026;&#20102;&#36827;&#34892;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#65292;&#26469;&#33258; <a href="cpp-language-namespace.html">using &#25351;&#20196;</a>&#25152;&#25351;&#21517;&#30340;&#21629;&#21517;&#31354;&#38388;&#20013;&#30340;&#25152;&#26377;&#22768;&#26126;&#65292;&#37117;&#34987;&#24403;&#25104;&#22914;&#21516;&#22788;&#20110;&#21516;&#26102;&#30452;&#25509;&#25110;&#38388;&#25509;&#21253;&#21547;&#36825;&#26465; using &#25351;&#20196;&#21644;&#25152;&#25351;&#21517;&#30340;&#21629;&#21517;&#31354;&#38388;&#30340;&#26368;&#20869;&#23618;&#30340;&#22806;&#22260;&#21629;&#21517;&#31354;&#38388;&#20043;&#20013;&#12290;</p>
<p>&#23545;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#24038;&#36793;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65288;&#31561;&#20215;&#22320;&#20063;&#21253;&#25324;&#34920;&#36798;&#24335;&#20013;&#30340;&#36816;&#31639;&#31526;&#65289;&#25152;&#36827;&#34892;&#30340;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#65292;&#22312;<a href="cpp-language-adl.html">&#23454;&#21442;&#20381;&#36182;&#26597;&#25214;</a>&#20013;&#35828;&#26126;&#12290;</p>
<h3><span class="mw-headline" id=".E6.96.87.E4.BB.B6.E4.BD.9C.E7.94.A8.E5.9F.9F">&#25991;&#20214;&#20316;&#29992;&#22495;</span></h3>
<p>&#23545;&#20110;&#22312;&#20840;&#23616;&#65288;&#39030;&#23618;&#21629;&#21517;&#31354;&#38388;&#65289;&#20316;&#29992;&#22495;&#20013;&#65292;&#19988;&#22312;&#20219;&#20309;&#20989;&#25968;&#12289;&#31867;&#25110;&#29992;&#25143;&#22768;&#26126;&#30340;&#21629;&#21517;&#31354;&#38388;&#20043;&#22806;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#26816;&#26597;&#20840;&#23616;&#20316;&#29992;&#22495;&#20013;&#36825;&#27425;&#21517;&#23383;&#30340;&#20351;&#29992;&#20043;&#21069;&#30340;&#37096;&#20998;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// n &#30340;&#22768;&#26126;</span>
<span class="kw4">int</span> x <span class="sy1">=</span> n <span class="sy2">+</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#25214;&#21040;&#20102; ::n</span>
<span class="kw4">int</span> z <span class="sy1">=</span> y <span class="sy2">-</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#26597;&#25214;&#22833;&#36133;</span>
<span class="kw4">int</span> y <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// y &#30340;&#22768;&#26126;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.91.BD.E5.90.8D.E7.A9.BA.E9.97.B4.E4.BD.9C.E7.94.A8.E5.9F.9F">&#21629;&#21517;&#31354;&#38388;&#20316;&#29992;&#22495;</span></h3>
<p>&#22312;&#29992;&#25143;&#22768;&#26126;&#30340;&#21629;&#21517;&#31354;&#38388;&#20013;&#65292;&#19988;&#22312;&#20219;&#20309;&#20989;&#25968;&#25110;&#31867;&#20043;&#22806;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#23558;&#20250;&#20381;&#27425;&#22312;&#20197;&#19979;&#20316;&#29992;&#22495;&#26597;&#25214;&#65306;</p>
<div class="t-li1"><span class="t-li">a)</span> &#35813;&#21629;&#21517;&#31354;&#38388;&#20013;&#21517;&#23383;&#30340;&#36825;&#27425;&#20351;&#29992;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div class="t-li1"><span class="t-li">b)</span> &#23558;&#19978;&#19968;&#20010;&#34987;&#26597;&#25214;&#30340;&#21629;&#21517;&#31354;&#38388;&#34920;&#31034;&#20026; A&#65292;&#21253;&#21547; A &#30340;&#21629;&#21517;&#31354;&#38388;&#20013; A &#30340;&#22768;&#26126;&#20043;&#21069;&#30340;&#37096;&#20998;&#65292;&#37325;&#22797;&#30452;&#21040;&#21040;&#36798;&#20840;&#23616;&#21629;&#21517;&#31354;&#38388;</div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#22768;&#26126;</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="kw4">int</span> m <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span>
<span class="kw1">namespace</span> Y <span class="br0">{</span>
<span class="kw4">int</span> x <span class="sy1">=</span> n<span class="sy4">;</span> <span class="co1">// OK&#65292;&#26597;&#25214; ::n</span>
<span class="kw4">int</span> y <span class="sy1">=</span> m<span class="sy4">;</span> <span class="co1">// OK&#65292;&#26597;&#25214; ::N::m</span>
<span class="kw4">int</span> z <span class="sy1">=</span> k<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#26597;&#25214;&#22833;&#36133;</span>
<span class="br0">}</span>
<span class="kw4">int</span> k <span class="sy1">=</span> <span class="nu0">3</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.9C.A8.E5.91.BD.E5.90.8D.E7.A9.BA.E9.97.B4.E5.A4.96.E8.BF.9B.E8.A1.8C.E5.AE.9A.E4.B9.89">&#22312;&#21629;&#21517;&#31354;&#38388;&#22806;&#36827;&#34892;&#23450;&#20041;</span></h3>
<p>&#24403;&#26576;&#20010;&#21629;&#21517;&#31354;&#38388;&#30340;&#25104;&#21592;&#21464;&#37327;&#22312;&#35813;&#21629;&#21517;&#31354;&#38388;&#22806;&#34987;&#23450;&#20041;&#26102;&#65292;&#35813;&#21464;&#37327;&#30340;&#21517;&#23383;&#35201;&#20197;&#22312;&#21629;&#21517;&#31354;&#38388;&#20043;&#20869;&#20351;&#29992;&#30340;&#21517;&#23383;&#30456;&#21516;&#30340;&#26041;&#24335;&#36827;&#34892;&#26597;&#25214;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> X <span class="br0">{</span>
<span class="kw4">extern</span> <span class="kw4">int</span> x<span class="sy4">;</span> <span class="co1">// &#22768;&#26126;&#65292;&#19981;&#26159;&#23450;&#20041;</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#19968;&#20010;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="kw4">int</span> X<span class="sy4">::</span><span class="me2">x</span> <span class="sy1">=</span> n<span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#20102; X::n&#65292;&#35774;&#32622; X::x &#20026; 1</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E9.9D.9E.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E7.9A.84.E5.AE.9A.E4.B9.89">&#38750;&#25104;&#21592;&#20989;&#25968;&#30340;&#23450;&#20041;</span></h3>
<p>&#22312;&#26576;&#20010;&#29992;&#25143;&#22768;&#26126;&#30340;&#25110;&#32773;&#20840;&#23616;&#30340;&#21629;&#21517;&#31354;&#38388;&#30340;&#25104;&#21592;&#20989;&#25968;&#20013;&#65292;&#23545;&#20110;&#22312;&#35813;&#20989;&#25968;&#30340;&#20989;&#25968;&#20307;&#25110;&#32773;&#20316;&#20026;&#40664;&#35748;&#23454;&#21442;&#30340;&#19968;&#37096;&#20998;&#32780;&#20351;&#29992;&#30340;&#21517;&#23383;&#23558;&#20250;&#20381;&#27425;&#22312;&#20197;&#19979;&#20316;&#29992;&#22495;&#26597;&#25214;&#65306;</p>
<div class="t-li1"><span class="t-li">a)</span> &#21253;&#21547;&#36825;&#27425;&#21517;&#23383;&#20351;&#29992;&#30340;&#22359;&#20013;&#36825;&#27425;&#20351;&#29992;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div class="t-li1"><span class="t-li">b)</span> &#23558;&#19978;&#19968;&#20010;&#34987;&#26597;&#25214;&#30340;&#22359;&#34920;&#31034;&#20026; A&#65292;&#21253;&#21547; A &#30340;&#22806;&#22260;&#22359;&#20013; A &#30340;&#22768;&#26126;&#20043;&#21069;&#30340;&#37096;&#20998;&#65292;&#37325;&#22797;&#30452;&#21040;&#21040;&#36798;&#20989;&#25968;&#20307;&#30340;&#22359;</div>
<div class="t-li1"><span class="t-li">c)</span> &#22768;&#26126;&#35813;&#20989;&#25968;&#30340;&#21629;&#21517;&#31354;&#38388;&#20013;&#35813;&#20989;&#25968;&#30340;&#20989;&#25968;&#23450;&#20041;&#65288;&#19981;&#26159;&#22768;&#26126;&#65289;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div class="t-li1"><span class="t-li">d)</span> &#23558;&#19978;&#19968;&#20010;&#34987;&#26597;&#25214;&#30340;&#21629;&#21517;&#31354;&#38388;&#34920;&#31034;&#20026; B&#65292;&#21253;&#21547; B &#30340;&#21629;&#21517;&#31354;&#38388;&#20013; B &#30340;&#22768;&#26126;&#20043;&#21069;&#30340;&#37096;&#20998;&#65292;&#37325;&#22797;&#30452;&#21040;&#21040;&#36798;&#20840;&#23616;&#21629;&#21517;&#31354;&#38388;&#65307;&#22914;&#26524;&#20854;&#20013;&#19968;&#20010;&#21629;&#21517;&#31354;&#38388;&#21253;&#21547;&#20102;&#35813;&#20989;&#25968;&#30340;&#20989;&#25968;&#23450;&#20041;&#65292;&#21017;&#22312;&#35813;&#21629;&#21517;&#31354;&#38388;&#20013;&#21482;&#26597;&#25214;&#35813;&#23450;&#20041;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> A <span class="br0">{</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> i<span class="sy1">=</span><span class="nu0">3</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#19977;&#20010;(c)&#65288;&#22914;&#26524;&#31532;&#20108;&#20010;&#27809;&#25214;&#21040;&#65289;</span>
<span class="br0">}</span>
<span class="kw4">int</span> i<span class="sy1">=</span><span class="nu0">4</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#22235;&#20010;(d)&#65288;&#22914;&#26524;&#31532;&#19977;&#20010;&#27809;&#25214;&#21040;&#65289;</span>
<span class="br0">}</span>
<span class="kw4">int</span> i<span class="sy1">=</span><span class="nu0">5</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#20116;&#20010;(d)&#65288;&#22914;&#26524;&#31532;&#22235;&#20010;&#27809;&#25214;&#21040;&#65289;</span>
<span class="kw4">void</span> A<span class="sy4">::</span><span class="me2">N</span><span class="sy4">::</span><span class="me2">f</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
<span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#20108;&#20010;(b)&#65288;&#22914;&#26524;&#31532;&#19968;&#20010;&#27809;&#25214;&#21040;&#65289;</span>
<span class="kw1">while</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> <span class="br0">{</span>
<span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#19968;&#20010;(a)&#65306;&#26597;&#25214;&#32467;&#26463;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> i<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span>
<span class="co1">// int i; // &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="kw1">namespace</span> A <span class="br0">{</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E7.B1.BB.E7.9A.84.E5.AE.9A.E4.B9.89">&#31867;&#30340;&#23450;&#20041;</span></h3>
<p>&#23545;&#20110;&#22312;<a href="cpp-language-class.html">&#31867;&#30340;&#23450;&#20041;</a>&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65288;&#21253;&#25324;&#22522;&#31867;&#35828;&#26126;&#31526;&#21644;&#23884;&#22871;&#31867;&#23450;&#20041;&#65289;&#65292;&#24403;&#20986;&#29616;&#20110;&#25104;&#21592;&#20989;&#25968;&#20307;&#12289;&#25104;&#21592;&#20989;&#25968;&#30340;&#40664;&#35748;&#23454;&#21442;&#12289;&#25104;&#21592;&#20989;&#25968;&#30340;&#24322;&#24120;&#35268;&#23450;&#12289;&#40664;&#35748;&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;&#65288;&#20854;&#20013;&#35813;&#25104;&#21592;&#21487;&#33021;&#23646;&#20110;&#23450;&#20041;&#22312;&#22806;&#22260;&#31867;&#20307;&#20869;&#30340;&#23884;&#22871;&#31867;&#65289;&#20197;&#22806;&#30340;&#20219;&#20309;&#20301;&#32622;&#26102;&#65292;&#35201;&#22312;&#19979;&#21015;&#20316;&#29992;&#22495;&#20013;&#26597;&#25214;&#65306;</p>
<div class="t-li1"><span class="t-li">a)</span> &#31867;&#20307;&#20043;&#20013;&#30452;&#21040;&#36825;&#27425;&#20351;&#29992;&#28857;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div class="t-li1"><span class="t-li">b)</span> &#65288;&#21508;&#20010;&#65289;&#22522;&#31867;&#30340;&#25972;&#20010;&#31867;&#20307;&#65292;&#25214;&#19981;&#21040;&#22768;&#26126;&#26102;&#65292;&#36882;&#24402;&#21040;&#22522;&#31867;&#30340;&#22522;&#31867;&#20013;</div>
<p>&#21478;&#22806;&#65292;&#23558;&#35201;&#23450;&#20041;&#30340;&#31867;&#34920;&#31034;&#20026; X&#65292;&#24403; X &#28385;&#36275;&#29305;&#23450;&#26465;&#20214;&#26159;&#65292;&#39069;&#22806;&#26597;&#25214;&#20197;&#19979;&#20316;&#29992;&#22495;&#65306;</p>
<div class="t-li1"><span class="t-li">c)</span> &#24403; X &#26159;&#31867; Y &#30340;<a href="cpp-language-nested_types.html">&#23884;&#22871;&#31867;</a>&#26102;&#65292;Y &#20307;&#20013; X &#30340;&#23450;&#20041;&#20043;&#21069;&#30340;&#37096;&#20998;&#20197;&#21450; Y &#30340;&#65288;&#21508;&#20010;&#65289;&#22522;&#31867;&#65307;&#35813;&#26597;&#25214;&#20063;&#20250;&#22312; Y &#30340;&#22806;&#22260;&#31867;&#20013;&#36827;&#34892;&#65292;&#20174;&#26368;&#20869;&#23618;&#30340;&#22806;&#22260;&#31867;&#24320;&#22987;</div>
<div class="t-li1"><span class="t-li">d)</span> &#24403; X &#26159;<a href="cpp-language-class.html#.E5.B1.80.E9.83.A8.E7.B1.BB">&#23616;&#37096;&#31867;</a>&#25110;&#23616;&#37096;&#31867;&#30340;&#23884;&#22871;&#31867;&#26102;&#65292;&#23450;&#20041;&#20102; X &#30340;&#22359;&#20316;&#29992;&#22495;&#20013;&#30452;&#21040;&#20854;&#23450;&#20041;&#28857;&#20043;&#21069;&#30340;&#37096;&#20998;</div>
<div class="t-li1"><span class="t-li">e)</span> &#24403; X &#26159;&#21629;&#21517;&#31354;&#38388; N &#30340;&#25104;&#21592;&#65292;N &#30340;&#25104;&#21592;&#31867;&#30340;&#23884;&#22871;&#31867;&#65292;&#25110;&#32773; N &#30340;&#25104;&#21592;&#20989;&#25968;&#30340;&#23616;&#37096;&#31867;&#26102;&#65292;N &#20013;&#25110;&#32773; N &#30340;&#20854;&#20013;&#19968;&#20010;&#22806;&#22260;&#21629;&#21517;&#31354;&#38388;&#20013; X &#30340;&#23450;&#20041;&#20043;&#21069;&#30340;&#37096;&#20998;&#12290;</div>
<p>&#23545;&#20110;<a href="cpp-language-friend.html">&#21451;&#20803;</a>&#22768;&#26126;&#65292;&#30830;&#23450;&#23427;&#25152;&#25351;&#20195;&#30340;&#20808;&#21069;&#22768;&#26126;&#30340;&#23454;&#20307;&#30340;&#26597;&#25214;&#25353;&#19978;&#36848;&#26041;&#24335;&#32487;&#32493;&#65292;&#38500;&#20102;&#22312;&#26368;&#20869;&#23618;&#30340;&#22806;&#22260;&#21629;&#21517;&#31354;&#38388;&#21518;&#20572;&#27490;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> M <span class="br0">{</span>
<span class="co1">// const int i = 1; // &#25214;&#19981;&#21040;&#36825;&#20010;&#65288;M &#19981;&#26159; N &#30340;&#22806;&#22260;&#21629;&#21517;&#31354;&#38388;&#65289;</span>
<span class="kw1">class</span> B <span class="br0">{</span>
<span class="co1">// static const int i = 3; // &#25214;&#21040;&#20102;&#31532;&#19977;&#20010;(c)&#65288;&#20294;&#20043;&#21518;&#20250;&#34987;&#35775;&#38382;&#26816;&#26597;&#25152;&#25298;&#32477;&#65289;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// const int i = 5; // &#25214;&#21040;&#20102;&#31532;&#20116;&#20010;(e)</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="co1">// const int i = 4; // &#25214;&#21040;&#20102;&#31532;&#22235;&#20010;(e)</span>
<span class="kw1">class</span> Y <span class="sy4">:</span> <span class="kw1">public</span> M<span class="sy4">::</span><span class="me2">B</span> <span class="br0">{</span>
<span class="co1">// static const int i = 2; // &#25214;&#21040;&#20102;&#31532;&#20108;&#20010;(c)</span>
<span class="kw1">class</span> X <span class="br0">{</span>
<span class="co1">// static const int i = 1; // &#25214;&#21040;&#20102;&#31532;&#19968;&#20010;(a)</span>
<span class="kw4">int</span> a<span class="br0">[</span>i<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// i &#30340;&#20351;&#29992;</span>
<span class="co1">// static const int i = 1; // &#25214;&#19981;&#21040;&#36825;&#20010;&#65288;&#23450;&#20041;&#22312;&#20351;&#29992; i &#20043;&#21518;&#65289;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// static const int i = 2; // &#25214;&#19981;&#21040;&#36825;&#20010;&#65288;&#23450;&#20041;&#22312;&#23450;&#20041; N::Y::X &#20043;&#21518;&#65289;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// const int i = 4; // &#25214;&#19981;&#21040;&#36825;&#20010;&#65288;&#23450;&#20041;&#22312;&#23450;&#20041; N::Y &#20043;&#21518;&#65289;</span>
<span class="br0">}</span>
<span class="co1">// const int i = 5; // &#25214;&#19981;&#21040;&#36825;&#20010;&#65288;&#23450;&#20041;&#22312; N &#20043;&#21518;&#65289;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E6.B3.A8.E5.85.A5.E7.B1.BB.E5.90.8D">&#27880;&#20837;&#31867;&#21517;</span></h3>
<p>&#23545;&#20110;&#22312;&#31867;&#25110;&#31867;&#27169;&#26495;&#25110;&#20854;&#27966;&#29983;&#31867;&#25110;&#31867;&#27169;&#26495;&#20013;&#25152;&#20351;&#29992;&#30340;&#36825;&#20010;&#31867;&#25110;&#31867;&#27169;&#26495;&#30340;&#21517;&#23383;&#65292;&#26080;&#38480;&#23450;&#21517;&#23383;&#26597;&#25214;&#23558;&#20250;&#25214;&#21040;&#24403;&#21069;&#36827;&#34892;&#23450;&#20041;&#30340;&#31867;&#65292;&#22914;&#21516;&#20854;&#21517;&#23383;&#26159;&#30001;&#25104;&#21592;&#22768;&#26126;&#65288;&#20197;&#20844;&#24320;&#25104;&#21592;&#35775;&#38382;&#65289;&#30340;&#26041;&#24335;&#25152;&#24341;&#20837;&#30340;&#19968;&#26679;&#12290;&#26356;&#22810;&#32454;&#33410;&#35265;<a href="cpp-language-injected-class-name.html">&#27880;&#20837;&#31867;&#21517;</a>&#12290;</p>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E7.9A.84.E5.AE.9A.E4.B9.89">&#25104;&#21592;&#20989;&#25968;&#30340;&#23450;&#20041;</span></h3>
<p>&#23545;&#20110;&#22312;&#25104;&#21592;&#20989;&#25968;&#20307;&#12289;&#25104;&#21592;&#20989;&#25968;&#30340;&#40664;&#35748;&#23454;&#21442;&#12289;&#25104;&#21592;&#20989;&#25968;&#30340;&#24322;&#24120;&#35828;&#26126;&#25110;&#40664;&#35748;&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#36827;&#34892;&#26597;&#25214;&#30340;&#21508;&#20010;&#20316;&#29992;&#22495;&#21644;<a href="cpp-language-unqualified_lookup.html#.E7.B1.BB.E7.9A.84.E5.AE.9A.E4.B9.89">&#31867;&#30340;&#23450;&#20041;</a>&#20013;&#30340;&#30456;&#21516;&#65292;&#20294;&#35201;&#32771;&#34385;&#36825;&#20010;&#31867;&#30340;&#25972;&#20010;&#20316;&#29992;&#22495;&#65292;&#32780;&#19981;&#20165;&#26159;&#20351;&#29992;&#20102;&#36825;&#20010;&#21517;&#23383;&#30340;&#22768;&#26126;&#20043;&#21069;&#30340;&#37096;&#20998;&#12290;&#23545;&#20110;&#23884;&#22871;&#31867;&#26469;&#35828;&#65292;&#20854;&#22806;&#22260;&#31867;&#30340;&#25972;&#20010;&#31867;&#20307;&#37117;&#35201;&#36827;&#34892;&#26597;&#25214;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">class</span> B <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#19977;&#20010;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">namespace</span> M <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#20116;&#20010;</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#22235;&#20010;</span>
<span class="kw1">class</span> X <span class="sy4">:</span> <span class="kw1">public</span> B <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// int i; // &#20063;&#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#22235;&#20010;</span>
<span class="br0">}</span>
<span class="br0">}</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#20845;&#20010;</span>
<span class="kw4">void</span> M<span class="sy4">::</span><span class="me2">N</span><span class="sy4">::</span><span class="me2">X</span><span class="sy4">::</span><span class="me2">f</span><span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#19968;&#20010;</span>
i <span class="sy1">=</span> <span class="nu0">16</span><span class="sy4">;</span>
<span class="co1">// int i; // &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="br0">}</span>
<span class="kw1">namespace</span> M <span class="br0">{</span>
<span class="kw1">namespace</span> N <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<dl>
<dd>&#26080;&#35770;&#21738;&#31181;&#26041;&#24335;&#65292;&#24403;&#26816;&#26597;&#27966;&#29983;&#31867;&#30340;&#22522;&#31867;&#26102;&#65292;&#38656;&#35201;&#36981;&#23432;&#19979;&#21015;&#35268;&#21017;&#65292;&#23427;&#20204;&#26377;&#26102;&#34987;&#31216;&#20026;<a href="https://en.wikipedia.org/wiki/Dominance_(C%2B%2B)" class="extiw" title="enwiki:Dominance (C++)">&#34394;&#32487;&#25215;&#20013;&#30340;&#20248;&#20808;&#24615;</a>&#65306;</dd>
</dl>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>&#24403;&#23376;&#23545;&#35937; <code>A</code> &#26159;&#23376;&#23545;&#35937; <code>B</code> &#30340;&#22522;&#31867;&#23376;&#23545;&#35937;&#26102;&#65292;&#23376;&#23545;&#35937; <code>B</code> &#20013;&#25214;&#21040;&#30340;&#25104;&#21592;&#30340;&#21517;&#23383;&#23558;&#38544;&#34255;&#25481;&#23376;&#23545;&#35937; <code>A</code> &#20013;&#30456;&#21516;&#30340;&#25104;&#21592;&#21517;&#12290;&#65288;&#20294;&#35201;&#27880;&#24847;&#36825;&#24182;&#19981;&#20250;&#38544;&#34255;&#32487;&#25215;&#26230;&#26684;&#20013;&#24182;&#38750; <code>B</code> &#30340;&#22522;&#31867;&#30340;&#20219;&#20309;&#20854;&#20182;&#30340; <code>A</code> &#30340;&#38750;&#34394;&#21103;&#26412;&#12290;&#36825;&#26465;&#35268;&#21017;&#20165;&#24403;&#34394;&#32487;&#25215;&#26102;&#25165;&#26377;&#25928;&#12290;&#65289;&#30001; using &#22768;&#26126;&#25152;&#24341;&#20837;&#30340;&#21517;&#23383;&#20250;&#34987;&#24403;&#25104;&#26159;&#21253;&#21547;&#36825;&#20010;&#22768;&#26126;&#30340;&#31867;&#20013;&#30340;&#21517;&#23383;&#26469;&#22788;&#29702;&#12290;&#26816;&#26597;&#21508;&#20010;&#22522;&#31867;&#20043;&#21518;&#65292;&#20854;&#32467;&#26524;&#38598;&#21512;&#24517;&#39035;&#21253;&#21547;&#26469;&#33258;&#21516;&#19968;&#20010;&#31867;&#22411;&#30340;&#23376;&#23545;&#35937;&#30340;&#38745;&#24577;&#25104;&#21592;&#30340;&#22768;&#26126;&#25110;&#32773;&#26469;&#33258;&#21516;&#19968;&#20010;&#23376;&#23545;&#35937;&#30340;&#38750;&#38745;&#24577;&#25104;&#21592;&#30340;&#22768;&#26126;&#12290;</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11">
<td>&#26500;&#36896;&#19968;&#20010;<i>&#26597;&#25214;&#38598;&#21512;</i>&#65292;&#23427;&#30001;&#19968;&#20123;&#22768;&#26126;&#21644;&#22312;&#20854;&#20013;&#25214;&#21040;&#20102;&#36825;&#20123;&#22768;&#26126;&#30340;&#23376;&#23545;&#35937;&#25152;&#26500;&#25104;&#12290; using &#22768;&#26126;&#34987;&#26367;&#25442;&#20026;&#23427;&#20204;&#25152;&#20195;&#34920;&#30340;&#25104;&#21592;&#65292;&#31867;&#22411;&#22768;&#26126;&#65288;&#21253;&#25324;&#27880;&#20837;&#31867;&#21517;&#65289;&#34987;&#26367;&#25442;&#20026;&#23427;&#20204;&#25152;&#20195;&#34920;&#30340;&#31867;&#22411;&#12290;&#22914;&#26524;&#31867; <code>C</code> &#22312;&#20854;&#20316;&#29992;&#22495;&#20013;&#20351;&#29992;&#20102;&#36825;&#20010;&#21517;&#23383;&#65292;&#21017;&#39318;&#20808;&#26816;&#26597; <code>C</code>&#12290;&#22914;&#26524; <code>C</code> &#20013;&#30340;&#22768;&#26126;&#21015;&#34920;&#20026;&#31354;&#65292;&#21017;&#23545;&#20854;&#21508;&#30452;&#25509;&#22522;&#31867; <code>Bi</code> &#21508;&#33258;&#26500;&#36896;&#26597;&#25214;&#38598;&#21512;&#65288;&#24403; <code>Bi</code> &#33258;&#36523;&#20063;&#26377;&#22522;&#31867;&#26102;&#65292;&#36882;&#24402;&#22320;&#24212;&#29992;&#36825;&#26465;&#35268;&#21017;&#65289;&#12290;&#26500;&#36896;&#23436;&#25104;&#21518;&#65292;&#23558;&#21508;&#30452;&#25509;&#22522;&#31867;&#30340;&#26597;&#25214;&#38598;&#21512;&#26681;&#25454;&#20197;&#19979;&#35268;&#21017;&#21512;&#24182;&#20026; <code>C</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#65306;
<dl>
<dd>
<ul>
<li>&#33509; <code>Bi</code> &#20013;&#30340;&#22768;&#26126;&#38598;&#21512;&#20026;&#31354;&#65292;&#21017;&#20854;&#34987;&#20002;&#24323;</li>
<li>&#33509;&#36804;&#20170;&#25152;&#26500;&#24314;&#30340; <code>C</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#20173;&#20026;&#31354;&#65292;&#21017;&#23558;&#20854;&#26367;&#25442;&#20026; <code>Bi</code> &#30340;&#26597;&#25214;&#38598;&#21512;</li>
<li>&#22914;&#26524; <code>Bi</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#20013;&#30340;&#27599;&#20010;&#23376;&#23545;&#35937;&#37117;&#26159;&#24050;&#32463;&#21152;&#20837;&#21040; <code>C</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#20013;&#33267;&#23569;&#19968;&#20010;&#23376;&#23545;&#35937;&#30340;&#22522;&#31867;&#23376;&#23545;&#35937;&#65292;&#21017;&#20002;&#24323; <code>Bi</code> &#30340;&#26597;&#25214;&#38598;&#21512;</li>
<li>&#22914;&#26524;&#24050;&#32463;&#21152;&#20837;&#21040; <code>C</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#20013;&#30340;&#27599;&#20010;&#23376;&#23545;&#35937;&#22343;&#20026; <code>Bi</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#20013;&#33267;&#23569;&#19968;&#20010;&#23376;&#23545;&#35937;&#30340;&#22522;&#31867;&#23376;&#23545;&#35937;&#65292;&#21017;&#20002;&#24323; <code>C</code> &#30340;&#26597;&#25214;&#38598;&#21512;&#65292;&#23558;&#20854;&#26367;&#25442;&#20026; <code>Bi</code> &#30340;&#26597;&#25214;&#38598;&#21512;</li>
<li>&#21542;&#21017;&#65292;&#22914;&#26524; <code>Bi</code> &#21644; <code>C</code> &#20013;&#30340;&#22768;&#26126;&#38598;&#21512;&#19981;&#21516;&#65292;&#21017;&#21512;&#24182;&#30340;&#32467;&#26524;&#26377;&#27495;&#20041;&#65306;<code>C</code> &#30340;&#26032;&#26597;&#25214;&#38598;&#21512;&#21253;&#21547;&#19968;&#20010;&#26080;&#25928;&#22768;&#26126;&#20197;&#21450;&#20043;&#21069;&#21512;&#24182;&#20837; <code>C</code> &#20013;&#30340;&#21508;&#23376;&#23545;&#35937;&#21644;&#30001; <code>Bi</code> &#25152;&#24341;&#20837;&#30340;&#23376;&#23545;&#35937;&#30340;&#24182;&#38598;&#12290;&#36825;&#20010;&#26080;&#25928;&#30340;&#26597;&#25214;&#38598;&#21512;&#22914;&#26524;&#22312;&#20043;&#21518;&#34987;&#20002;&#24323;&#20102;&#65292;&#37027;&#20040;&#23427;&#24182;&#19981;&#20250;&#23548;&#33268;&#38169;&#35823;&#12290;</li>
<li>&#21542;&#21017;&#65292;<code>C</code> &#30340;&#26032;&#26597;&#25214;&#38598;&#21512;&#20855;&#26377;&#20849;&#21516;&#30340;&#22768;&#26126;&#38598;&#21512;&#21644;&#20043;&#21069;&#21512;&#24182;&#20837; <code>C</code> &#21644;&#30001; <code>Bi</code> &#25152;&#24341;&#20837;&#30340;&#23376;&#23545;&#35937;&#30340;&#24182;&#38598;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> X <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="kw1">struct</span> B1<span class="sy4">:</span> <span class="kw1">virtual</span> X <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="kw1">struct</span> B2<span class="sy4">:</span> <span class="kw1">virtual</span> X <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> D <span class="sy4">:</span> B1, B2 <span class="br0">{</span>
<span class="kw4">void</span> foo<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
X<span class="sy4">::</span><span class="me2">f</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#35843;&#29992;&#20102; X::f&#65288;&#26377;&#38480;&#23450;&#26597;&#25214;&#65289;</span>
f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#35843;&#29992;&#20102; B1::f&#65288;&#26080;&#38480;&#23450;&#26597;&#25214;&#65289;</span>
<span class="co1">// C++98 &#35268;&#21017;&#65306;B1::f &#38544;&#34255; X::f&#65292;&#22240;&#27492;&#21363;&#20351; X::f &#21487;&#20197;&#36890;&#36807;</span>
<span class="co1">// B2 &#20174; D &#35775;&#38382;&#65292;&#23427;&#20063;&#19981;&#33021;&#34987; D &#20013;&#30340;&#21517;&#23383;&#26597;&#25214;&#25152;&#25214;&#21040;&#12290;</span>
<span class="co1">// C++11 &#35268;&#21017;&#65306;&#22312; D &#20013;&#23545; f &#30340;&#26597;&#25214;&#38598;&#21512;&#24182;&#26410;&#25214;&#21040;&#20219;&#20309;&#19996;&#35199;&#65292;&#32487;&#32493;&#22788;&#29702;&#20854;&#22522;&#31867;</span>
<span class="co1">// &#22312; B1 &#20013;&#23545; f &#30340;&#26597;&#25214;&#38598;&#21512;&#25214;&#21040;&#20102; B1::f &#24182;&#23436;&#25104;</span>
<span class="co1">// &#21512;&#24182;&#26102;&#26367;&#25442;&#20102;&#31354;&#38598;&#65292;&#27492;&#26102;&#22312; C &#20013; &#23545; f &#30340;&#26597;&#25214;&#38598;&#21512;&#21253;&#21547; B1 &#20013;&#30340; B1::f</span>
<span class="co1">// &#22312; B2 &#20013;&#23545; f &#30340;&#26597;&#25214;&#38598;&#21512;&#24182;&#26410;&#25214;&#21040;&#20219;&#20309;&#19996;&#35199;&#65292;&#32487;&#32493;&#22788;&#29702;&#20854;&#22522;&#31867;</span>
<span class="co1">// &#22312; X &#20013;&#23545; f &#30340;&#26597;&#25214;&#25214;&#21040;&#20102; X::f</span>
<span class="co1">// &#21512;&#24182;&#26102;&#26367;&#25442;&#20102;&#31354;&#38598;&#65292;&#27492;&#26102;&#22312; B2 &#20013;&#23545; f &#30340;&#26597;&#25214;&#38598;&#21512;&#21253;&#21547; X &#20013;&#30340; X::f</span>
<span class="co1">// &#24403;&#21521; C &#20013;&#21512;&#24182;&#26102;&#21457;&#29616;&#22312; B2 &#30340;&#26597;&#25214;&#38598;&#21512;&#20013;&#30340;&#27599;&#20010;&#23376;&#23545;&#35937;&#65288;X&#65289;&#37117;&#26159;</span>
<span class="co1">// &#24050;&#32463;&#21512;&#24182;&#30340;&#21508;&#20010;&#23376;&#23545;&#35937;&#65288;B1&#65289;&#30340;&#22522;&#31867;&#65292;&#22240;&#27492; B2 &#30340;&#38598;&#21512;&#34987;&#20002;&#24323;</span>
<span class="co1">// C &#21097;&#19979;&#26469;&#30340;&#23601;&#26159;&#22312; B1 &#20013;&#25152;&#25214;&#21040;&#30340; B1::f</span>
<span class="co1">// (&#22914;&#26524;&#20351;&#29992; struct D : B2, B1&#65292;&#21017;&#26368;&#21518;&#30340;&#21512;&#24182;&#23558;&#20250;*&#26367;&#25442;&#25481;*</span>
<span class="co1">// C &#27492;&#26102;&#24050;&#32463;&#21512;&#24182;&#30340; X &#20013;&#30340; X::f&#65292;&#22240;&#20026;&#24050;&#32463;&#21152;&#20837;&#21040; C &#20013;&#30340;&#27599;&#20010;&#23376;&#23545;&#35937;&#65288;&#23601;&#26159; X&#65289;</span>
<span class="co1">// &#37117;&#26159;&#26032;&#38598;&#21512;&#65288;B1&#65289;&#20013;&#30340;&#33267;&#23569;&#19968;&#20010;&#23376;&#23545;&#35937;&#30340;&#22522;&#31867;&#65292;</span>
<span class="co1">// &#20854;&#26368;&#32456;&#32467;&#26524;&#26159;&#19968;&#26679;&#30340;&#65306;C &#30340;&#26597;&#25214;&#38598;&#21512;&#21482;&#21253;&#21547;&#22312; B1 &#20013;&#25214;&#21040;&#30340; B1::f&#65289;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<dl>
<dd>&#22914;&#26524;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#25214;&#21040;&#20102; <code>B</code> &#30340;&#38745;&#24577;&#25104;&#21592;&#65292;<code>B</code> &#30340;&#23884;&#22871;&#31867;&#22411;&#25110;&#22312; <code>B</code> &#20013;&#22768;&#26126;&#30340;&#26522;&#20030;&#39033;&#65292;&#21017;&#21363;&#20415;&#22312;&#25152;&#26816;&#26597;&#30340;&#31867;&#30340;&#32487;&#25215;&#26641;&#20013;&#26377;&#22810;&#20010; <code>B</code> &#31867;&#22411;&#30340;&#38750;&#34394;&#22522;&#31867;&#23376;&#23545;&#35937;&#65292;&#23427;&#20063;&#26159;&#26080;&#27495;&#20041;&#30340;&#65306;</dd>
</dl>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> V <span class="br0">{</span> <span class="kw4">int</span> v<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> A <span class="br0">{</span>
<span class="kw4">int</span> a<span class="sy4">;</span>
<span class="kw4">static</span> <span class="kw4">int</span> s<span class="sy4">;</span>
<span class="kw2">enum</span> <span class="br0">{</span> e <span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> B <span class="sy4">:</span> A, <span class="kw1">virtual</span> V <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> C <span class="sy4">:</span> A, <span class="kw1">virtual</span> V <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> D <span class="sy4">:</span> B, C <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> f<span class="br0">(</span>D<span class="sy3">&amp;</span> pd<span class="br0">)</span> <span class="br0">{</span>
<span class="sy2">++</span>pd.<span class="me1">v</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#21482;&#26377;&#19968;&#20010; v&#65292;&#22240;&#20026;&#21482;&#26377;&#19968;&#20010;&#34394;&#22522;&#31867;&#23376;&#23545;&#35937;</span>
<span class="sy2">++</span>pd.<span class="me1">s</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#21482;&#26377;&#19968;&#20010;&#38745;&#24577;&#30340; A::s&#65292;&#21363;&#20415;&#22312; B &#21644; C &#20013;&#37117;&#25214;&#21040;&#20102;&#23427;</span>
<span class="kw4">int</span> i <span class="sy1">=</span> pd.<span class="me1">e</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#21482;&#26377;&#19968;&#20010;&#26522;&#20030;&#39033; A::e&#65292;&#21363;&#20415;&#22312; B &#21644; C &#20013;&#37117;&#25214;&#21040;&#20102;&#23427;</span>
<span class="sy2">++</span>pd.<span class="me1">a</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65292;&#26377;&#27495;&#20041;&#65306;B &#20013;&#30340; A::a &#21644; C &#20013;&#30340; A::a</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.8F.8B.E5.85.83.E5.87.BD.E6.95.B0.E7.9A.84.E5.AE.9A.E4.B9.89">&#21451;&#20803;&#20989;&#25968;&#30340;&#23450;&#20041;</span></h3>
<p>&#23545;&#20110;&#22312;&#25480;&#20104;&#21451;&#20803;&#20851;&#31995;&#30340;&#31867;&#20307;&#20043;&#20013;&#30340;<a href="cpp-language-friend.html">&#21451;&#20803;</a>&#20989;&#25968;&#30340;&#23450;&#20041;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#25353;&#29031;&#19982;&#25104;&#21592;&#20989;&#25968;&#30456;&#21516;&#30340;&#26041;&#24335;&#36827;&#34892;&#12290;&#23545;&#20110;&#23450;&#20041;&#20110;&#31867;&#20307;&#20043;&#22806;&#30340;<a href="cpp-language-friend.html">&#21451;&#20803;</a>&#20989;&#25968;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#25353;&#29031;&#19982;&#21629;&#21517;&#31354;&#38388;&#20013;&#30340;&#20989;&#25968;&#30456;&#21516;&#30340;&#26041;&#24335;&#36827;&#34892;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">3</span><span class="sy4">;</span> <span class="co1">// f1 &#25214;&#21040;&#30340;&#31532;&#19977;&#20010;&#65292;f2 &#25214;&#21040;&#30340;&#31532;&#20108;&#20010;</span>
<span class="kw1">struct</span> X <span class="br0">{</span>
<span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// f1 &#25214;&#21040;&#30340;&#31532;&#20108;&#20010;&#65292;f2 &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="kw1">friend</span> <span class="kw4">void</span> f1<span class="br0">(</span><span class="kw4">int</span> x<span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#19968;&#20010;</span>
i <span class="sy1">=</span> x<span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#24182;&#25913;&#21160; X::i</span>
<span class="br0">}</span>
<span class="kw1">friend</span> <span class="kw4">int</span> f2<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// static const int i = 2; // f1 &#22312;&#31867;&#20316;&#29992;&#22495;&#20013;&#30340;&#20219;&#20309;&#22320;&#26041;&#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> f2<span class="br0">(</span><span class="kw4">int</span> x<span class="br0">)</span> <span class="br0">{</span>
<span class="co1">// int i; // &#25214;&#21040;&#31532;&#19968;&#20010;</span>
i <span class="sy1">=</span> x<span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#24182;&#25913;&#21160; ::i</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.8F.8B.E5.85.83.E5.87.BD.E6.95.B0.E7.9A.84.E5.A3.B0.E6.98.8E">&#21451;&#20803;&#20989;&#25968;&#30340;&#22768;&#26126;</span></h3>
<p>&#23545;&#20110;&#22312;&#20351;&#26469;&#33258;&#20854;&#20182;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#20026;&#21451;&#20803;&#30340;<a href="cpp-language-friend.html">&#21451;&#20803;</a>&#20989;&#25968;&#22768;&#26126;&#30340;&#22768;&#26126;&#31526;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#22914;&#26524;&#35813;&#21517;&#23383;&#19981;&#26159;&#20219;&#20309;&#27169;&#26495;&#23454;&#21442;&#30340;&#19968;&#37096;&#20998;&#65292;&#21017;&#26080;&#38480;&#23450;&#30340;&#26597;&#25214;&#39318;&#20808;&#26816;&#26597;&#25104;&#21592;&#20989;&#25968;&#25152;&#22312;&#31867;&#30340;&#25972;&#20010;&#20316;&#29992;&#22495;&#12290;&#22914;&#26524;&#26410;&#33021;&#22312;&#36825;&#20010;&#20316;&#29992;&#22495;&#20013;&#25214;&#21040;&#65288;&#25110;&#32773;&#22914;&#26524;&#36825;&#20010;&#21517;&#23383;&#26159;&#27169;&#26495;&#23454;&#21442;&#30340;&#19968;&#37096;&#20998;&#65289;&#65292;&#21017;&#32487;&#32493;&#20197;&#22914;&#21516;&#23545;&#25480;&#20104;&#21451;&#20803;&#20851;&#31995;&#30340;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#36827;&#34892;&#26597;&#25214;&#30340;&#26041;&#24335;&#32487;&#32493;&#26597;&#25214;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">// &#36825;&#20010;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#34987;&#20316;&#20026;&#21451;&#20803;</span>
<span class="kw1">struct</span> A <span class="br0">{</span>
<span class="kw1">typedef</span> <span class="kw4">int</span> AT<span class="sy4">;</span>
<span class="kw4">void</span> f1<span class="br0">(</span>AT<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">void</span> f2<span class="br0">(</span><span class="kw4">float</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">void</span> f3<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// &#36825;&#20010;&#31867;&#25480;&#20104;&#21451;&#20803;&#20851;&#31995;</span>
<span class="kw1">struct</span> B <span class="br0">{</span>
<span class="kw1">typedef</span> <span class="kw4">char</span> AT<span class="sy4">;</span>
<span class="kw1">typedef</span> <span class="kw4">float</span> BT<span class="sy4">;</span>
<span class="kw1">friend</span> <span class="kw4">void</span> A<span class="sy4">::</span><span class="me2">f1</span><span class="br0">(</span>AT<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23545; AT &#30340;&#26597;&#25214;&#25214;&#21040;&#30340;&#26159; A::AT</span>
<span class="kw1">friend</span> <span class="kw4">void</span> A<span class="sy4">::</span><span class="me2">f2</span><span class="br0">(</span>BT<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23545; BT &#30340;&#26597;&#25214;&#25214;&#21040;&#30340;&#26159; B::BT</span>
<span class="kw1">friend</span> <span class="kw4">void</span> A<span class="sy4">::</span><span class="me2">f3</span><span class="sy1">&lt;</span>AT<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23545; AT &#30340;&#26597;&#25214;&#25214;&#21040;&#30340;&#26159; B::AT </span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E9.BB.98.E8.AE.A4.E5.AE.9E.E5.8F.82">&#40664;&#35748;&#23454;&#21442;</span></h3>
<p>&#23545;&#20110;&#22312;&#20989;&#25968;&#22768;&#26126;&#30340;<a href="cpp-language-default_arguments.html">&#40664;&#35748;&#23454;&#21442;</a>&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#25110;&#32773;&#22312;&#26500;&#36896;&#20989;&#25968;&#30340;<a href="cpp-language-initializer_list.html" class="mw-redirect">&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;</a>&#30340; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#37096;&#20998;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#22312;&#26816;&#26597;&#20854;&#22806;&#22260;&#30340;&#22359;&#12289;&#31867;&#25110;&#21629;&#21517;&#31354;&#38388;&#20316;&#29992;&#22495;&#20043;&#21069;&#65292;&#39318;&#20808;&#20250;&#25214;&#21040;&#20989;&#25968;&#24418;&#21442;&#30340;&#21517;&#23383;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">class</span> X <span class="br0">{</span>
<span class="kw4">int</span> a, b, i, j<span class="sy4">;</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw4">const</span> <span class="kw4">int</span><span class="sy3">&amp;</span> r<span class="sy4">;</span>
X<span class="br0">(</span><span class="kw4">int</span> i<span class="br0">)</span><span class="sy4">:</span> r<span class="br0">(</span>a<span class="br0">)</span>, <span class="co1">// &#23558; X::r &#21021;&#22987;&#21270;&#20026;&#25351;&#20195; X::a</span>
b<span class="br0">(</span>i<span class="br0">)</span>, <span class="co1">// &#23558; X::b &#21021;&#22987;&#21270;&#20026;&#24418;&#21442; i &#30340;&#20540;</span>
i<span class="br0">(</span>i<span class="br0">)</span>, <span class="co1">// &#23558; X::i &#21021;&#22987;&#21270;&#20026;&#24418;&#21442; i &#30340;&#20540;</span>
j<span class="br0">(</span>this<span class="sy2">-</span><span class="sy1">&gt;</span>i<span class="br0">)</span> <span class="co1">// &#23558; X::j &#21021;&#22987;&#21270;&#20026; X::i &#30340;&#20540;</span>
<span class="br0">{</span> <span class="br0">}</span>
<span class="br0">}</span>
<span class="kw4">int</span> a<span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> a, <span class="kw4">int</span> b <span class="sy1">=</span> a<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#23545; a &#30340;&#26597;&#25214;&#25214;&#21040;&#20102;&#24418;&#21442; a&#65292;&#32780;&#19981;&#26159; ::a</span>
<span class="co1">// &#20294;&#22312;&#40664;&#35748;&#23454;&#21442;&#20013;&#19981;&#20801;&#35768;&#20351;&#29992;&#24418;&#21442;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E9.9D.99.E6.80.81.E6.95.B0.E6.8D.AE.E6.88.90.E5.91.98.E7.9A.84.E5.AE.9A.E4.B9.89">&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;&#23450;&#20041;</span></h3>
<p>&#23545;&#20110;&#22312;<a href="cpp-language-static.html">&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;</a>&#30340;&#23450;&#20041;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#20854;&#26597;&#25214;&#25353;&#29031;&#19982;&#23545;&#25104;&#21592;&#20989;&#25968;&#30340;&#23450;&#20041;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#30456;&#21516;&#30340;&#26041;&#24335;&#36827;&#34892;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> X <span class="br0">{</span>
<span class="kw4">static</span> <span class="kw4">int</span> x<span class="sy4">;</span>
<span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#19968;&#20010;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="kw4">int</span> X<span class="sy4">::</span><span class="me2">x</span> <span class="sy1">=</span> n<span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#20102; X::n&#65292;&#23558; X::x &#35774;&#32622;&#20026; 1 &#32780;&#19981;&#26159; 2</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E6.9E.9A.E4.B8.BE.E9.A1.B9.E7.9A.84.E5.A3.B0.E6.98.8E">&#26522;&#20030;&#39033;&#30340;&#22768;&#26126;</span></h3>
<p>&#23545;&#20110;&#22312;<a href="cpp-language-enum.html">&#26522;&#20030;&#39033;&#30340;&#22768;&#26126;</a>&#30340;&#21021;&#22987;&#21270;&#22120;&#37096;&#20998;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#22312;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#22788;&#29702;&#20854;&#22806;&#22260;&#30340;&#22359;&#12289;&#31867;&#25110;&#21629;&#21517;&#31354;&#38388;&#20316;&#29992;&#22495;&#20043;&#21069;&#65292;&#20250;&#39318;&#20808;&#25214;&#21040;&#21516;&#19968;&#20010;&#26522;&#20030;&#20013;&#20043;&#21069;&#25152;&#22768;&#26126;&#30340;&#26522;&#20030;&#39033;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">const</span> <span class="kw4">int</span> RED <span class="sy1">=</span> <span class="nu0">7</span><span class="sy4">;</span>
<span class="kw2">enum</span> <span class="kw1">class</span> color <span class="br0">{</span>
RED,
GREEN <span class="sy1">=</span> RED<span class="sy2">+</span><span class="nu0">2</span>, <span class="co1">// RED &#25214;&#21040;&#20102; color::RED &#65292;&#32780;&#19981;&#26159; ::RED &#65292;&#22240;&#27492; GREEN = 2</span>
BLUE <span class="sy1">=</span> <span class="sy4">::</span><span class="me2">RED</span><span class="sy2">+</span><span class="nu0">4</span> <span class="co1">// &#26377;&#38480;&#23450;&#26597;&#25214;&#25214;&#21040; ::RED &#65292; BLUE = 11</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0_try_.E5.9D.97.E7.9A.84_catch_.E5.AD.90.E5.8F.A5">&#20989;&#25968; try &#22359;&#30340; catch &#23376;&#21477;</span></h3>
<p>&#23545;&#20110;&#22312;<a href="cpp-language-function-try-block.html">&#20989;&#25968; try &#22359;</a>&#30340; catch &#23376;&#21477;&#20013;&#25152;&#20351;&#29992;&#30340;&#21517;&#23383;&#65292;&#20854;&#26597;&#25214;&#25353;&#29031;&#22914;&#21516;&#23545;&#22312;&#20989;&#25968;&#20307;&#30340;&#26368;&#22806;&#23618;&#22359;&#30340;&#26368;&#24320;&#22987;&#22788;&#20351;&#29992;&#30340;&#21517;&#23383;&#19968;&#26679;&#36827;&#34892;&#65288;&#29305;&#21035;&#26159;&#65292;&#20989;&#25968;&#24418;&#21442;&#26159;&#21487;&#35265;&#30340;&#65292;&#20294;&#36825;&#20010;&#26368;&#22806;&#23618;&#22359;&#20013;&#22768;&#26126;&#30340;&#21517;&#23383;&#21017;&#19981;&#21487;&#35265;&#65289;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">3</span><span class="sy4">;</span> <span class="co1">// &#25214;&#21040;&#31532;&#19977;&#20010;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">2</span><span class="br0">)</span> <span class="co1">// &#25214;&#21040;&#31532;&#20108;&#20010;</span>
<span class="kw1">try</span> <span class="br0">{</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="sy2">-</span><span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#25214;&#19981;&#21040;&#36825;&#20010;</span>
<span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>...<span class="br0">)</span> <span class="br0">{</span>
<span class="co1">// int n = 1; // &#25214;&#21040;&#31532;&#19968;&#20010;</span>
<a href="cpp-error-assert.html"><span class="kw774">assert</span></a><span class="br0">(</span>n <span class="sy1">==</span> <span class="nu0">2</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23545; n &#30340;&#26597;&#25214;&#25214;&#21040;&#20102;&#20989;&#25968;&#24418;&#21442; f</span>
<span class="kw1">throw</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E9.87.8D.E8.BD.BD.E7.9A.84.E8.BF.90.E7.AE.97.E7.AC.A6">&#37325;&#36733;&#30340;&#36816;&#31639;&#31526;</span></h3>
<p>&#23545;&#20110;&#22312;&#34920;&#36798;&#24335;&#20013;&#25152;&#20351;&#29992;&#30340;<a href="cpp-language-expressions.html#.E8.BF.90.E7.AE.97.E7.AC.A6">&#36816;&#31639;&#31526;</a>&#65288;&#27604;&#22914;&#22312; <code>a+b</code> &#20013;&#20351;&#29992;&#30340; <code>operator+</code>&#65289;&#65292;&#20854;&#26597;&#25214;&#35268;&#21017;&#21644;&#23545;&#22312;&#22914; <code>operator+(a,b)</code> &#36825;&#26679;&#30340;&#26174;&#24335;&#20989;&#25968;&#35843;&#29992;&#34920;&#36798;&#24335;&#20013;&#25152;&#20351;&#29992;&#30340;&#36816;&#31639;&#31526;&#26159;&#26377;&#25152;&#19981;&#21516;&#30340;&#65306;&#24403;&#22788;&#29702;&#34920;&#36798;&#24335;&#26102;&#35201;&#20998;&#21035;&#36827;&#34892;&#20004;&#27425;&#26597;&#25214;&#65306;&#23545;&#38750;&#25104;&#21592;&#30340;&#36816;&#31639;&#31526;&#37325;&#36733;&#65292;&#20063;&#23545;&#25104;&#21592;&#36816;&#31639;&#31526;&#37325;&#36733;&#65288;&#23545;&#20110;&#21516;&#26102;&#20801;&#35768;&#20004;&#31181;&#24418;&#24335;&#30340;&#36816;&#31639;&#31526;&#65289;&#12290;&#28982;&#21518;&#25353;<a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#35299;&#26512;</a>&#25152;&#36848;&#23558;&#36825;&#20004;&#20010;&#38598;&#21512;&#19982;&#20869;&#24314;&#30340;&#36816;&#31639;&#31526;&#37325;&#36733;&#20197;&#24179;&#31561;&#30340;&#26041;&#24335;&#21512;&#24182;&#21040;&#19968;&#36215;&#12290;&#32780;&#24403;&#20351;&#29992;&#26174;&#24335;&#20989;&#25968;&#35843;&#29992;&#35821;&#27861;&#26102;&#65292;&#21017;&#36827;&#34892;&#24120;&#35268;&#30340;&#26080;&#38480;&#23450;&#21517;&#23383;&#26597;&#25214;&#65306;</p>
<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="kw4">void</span> operator<span class="sy2">+</span><span class="br0">(</span>A, A<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#29992;&#25143;&#23450;&#20041;&#30340;&#38750;&#25104;&#21592; operator+</span>
<span class="kw1">struct</span> B <span class="br0">{</span>
<span class="kw4">void</span> operator<span class="sy2">+</span><span class="br0">(</span>B<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#29992;&#25143;&#23450;&#20041;&#30340;&#25104;&#21592; operator+</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>
A a<span class="sy4">;</span>
<span class="kw4">void</span> B<span class="sy4">::</span><span class="me2">f</span><span class="br0">(</span><span class="br0">)</span> <span class="co1">// B &#30340;&#25104;&#21592;&#20989;&#25968;&#23450;&#20041;</span>
<span class="br0">{</span>
operator<span class="sy2">+</span><span class="br0">(</span>a,a<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#22312;&#25104;&#21592;&#20989;&#25968;&#20013;&#30340;&#24120;&#35268;&#21517;&#23383;&#26597;&#25214;</span>
<span class="co1">// &#25214;&#21040;&#20102; B &#30340;&#20316;&#29992;&#22495;&#20013;&#30340; operator+ &#30340;&#22768;&#26126;</span>
<span class="co1">// &#24182;&#20110;&#27492;&#20572;&#19979;&#65292;&#32780;&#19981;&#20250;&#36798;&#21040;&#20840;&#23616;&#20316;&#29992;&#22495;</span>
a <span class="sy2">+</span> a<span class="sy4">;</span> <span class="co1">// OK&#65306;&#25104;&#21592;&#26597;&#25214;&#25214;&#21040;&#20102; B::operator+&#65292;&#38750;&#25104;&#21592;&#26597;&#25214;</span>
<span class="co1">// &#25214;&#21040;&#20102; ::operator+(A,A)&#65292;&#37325;&#36733;&#20915;&#35758;&#36873;&#20013;&#20102; ::operator+(A,A)</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E6.A8.A1.E6.9D.BF.E7.9A.84.E5.AE.9A.E4.B9.89">&#27169;&#26495;&#30340;&#23450;&#20041;</span></h3>
<p>&#23545;&#20110;&#22312;&#27169;&#26495;&#30340;&#23450;&#20041;&#20013;&#25152;&#20351;&#29992;&#30340;<a href="cpp-language-dependent_name.html">&#38750;&#24453;&#20915;&#21517;</a>&#65292;&#24403;&#26816;&#26597;&#35813;&#27169;&#26495;&#30340;&#23450;&#20041;&#26102;&#23558;&#36827;&#34892;&#26080;&#38480;&#23450;&#30340;&#21517;&#23383;&#26597;&#25214;&#12290;&#22312;&#36825;&#20010;&#20301;&#32622;&#19982;&#22768;&#26126;&#20043;&#38388;&#30340;&#32465;&#23450;&#24182;&#19981;&#20250;&#21463;&#21040;&#22312;&#23454;&#20363;&#21270;&#28857;&#21487;&#35265;&#30340;&#22768;&#26126;&#30340;&#24433;&#21709;&#12290;&#32780;&#23545;&#20110;&#22312;&#27169;&#26495;&#23450;&#20041;&#20013;&#25152;&#20351;&#29992;&#30340;<a href="cpp-language-dependent_name.html">&#24453;&#20915;&#21517;</a>&#65292;&#20854;&#26597;&#25214;&#21017;&#25512;&#36831;&#21040;&#24471;&#30693;&#20854;&#27169;&#26495;&#23454;&#21442;&#20043;&#26102;&#12290;&#27492;&#26102;&#65292;<a href="cpp-language-adl.html">ADL</a> &#23558;&#21516;&#26102;&#22312;&#27169;&#26495;&#30340;&#23450;&#20041;&#35821;&#22659;&#21644;&#22312;&#27169;&#26495;&#30340;&#23454;&#20363;&#21270;&#35821;&#22659;&#20013;&#26816;&#26597;&#21487;&#35265;&#30340;<span class="t-rev-inl t-until-cxx11"><span>&#20855;&#26377;&#22806;&#37096;&#36830;&#25509;&#30340;</span> <span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></span></span>&#20989;&#25968;&#22768;&#26126;&#65292;&#32780;&#38750; ADL &#30340;&#26597;&#25214;&#21017;&#21482;&#26816;&#26597;&#22312;&#27169;&#26495;&#30340;&#23450;&#20041;&#35821;&#22659;&#20013;&#21487;&#35265;&#30340;<span class="t-rev-inl t-until-cxx11"><span>&#20855;&#26377;&#22806;&#37096;&#36830;&#25509;&#30340;</span> <span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></span></span>&#20989;&#25968;&#22768;&#26126;&#12290;&#65288;&#25442;&#21477;&#35805;&#35828;&#65292;&#22312;&#27169;&#26495;&#23450;&#20041;&#20043;&#21518;&#28155;&#21152;&#26032;&#30340;&#20989;&#25968;&#22768;&#26126;&#65292;&#38500;&#38750;&#36890;&#36807; ADL &#21542;&#21017;&#20173;&#26159;&#19981;&#21487;&#35265;&#30340;&#12290;&#65289;&#22914;&#26524;&#22312; ADL &#26597;&#25214;&#25152;&#26816;&#26597;&#30340;&#21629;&#21517;&#31354;&#38388;&#20013;&#65292;&#22312;&#26576;&#20010;&#21035;&#30340;&#32763;&#35793;&#21333;&#20803;&#20013;&#22768;&#26126;&#20102;&#19968;&#20010;&#20855;&#26377;&#22806;&#37096;&#36830;&#25509;&#30340;&#26356;&#22909;&#30340;&#21305;&#37197;&#22768;&#26126;&#65292;&#25110;&#32773;&#22914;&#26524;&#24403;&#21516;&#26679;&#26816;&#26597;&#36825;&#20123;&#32763;&#35793;&#21333;&#20803;&#26102;&#20854;&#26597;&#25214;&#20250;&#23548;&#33268;&#27495;&#20041;&#65292;&#21017;&#20854;&#34892;&#20026;&#26159;&#26410;&#23450;&#20041;&#30340;&#12290;&#26080;&#35770;&#21738;&#31181;&#24773;&#20917;&#65292;&#22914;&#26524;&#26576;&#20010;&#22522;&#31867;&#21462;&#20915;&#20110;&#26576;&#20010;&#27169;&#26495;&#24418;&#21442;&#65292;&#21017;&#26080;&#38480;&#23450;&#21517;&#23383;&#26597;&#25214;&#19981;&#20250;&#26816;&#26597;&#23427;&#30340;&#20316;&#29992;&#22495;&#65288;&#22312;&#23450;&#20041;&#28857;&#21644;&#23454;&#20363;&#21270;&#28857;&#37117;&#19981;&#20250;&#65289;&#12290;</p>
<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">char</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// f &#30340;&#31532;&#19968;&#20010;&#22768;&#26126;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">void</span> g<span class="br0">(</span>T t<span class="br0">)</span> <span class="br0">{</span>
f<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38750;&#24453;&#20915;&#21517;&#65306;&#21517;&#23383;&#26597;&#25214;&#25214;&#21040;&#20102; ::f(char) &#24182;&#20110;&#27492;&#26102;&#32465;&#23450;</span>
f<span class="br0">(</span>T<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#24453;&#20915;&#21517;&#65306;&#26597;&#25214;&#25512;&#36831;</span>
f<span class="br0">(</span>t<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#24453;&#20915;&#21517;&#65306;&#26597;&#25214;&#25512;&#36831;</span>
<span class="co1">// dd++; // &#38750;&#24453;&#20915;&#21517;&#65306;&#21517;&#23383;&#26597;&#25214;&#26410;&#25214;&#21040;&#22768;&#26126;</span>
<span class="br0">}</span>
<span class="kw2">enum</span> E <span class="br0">{</span> e <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> f<span class="br0">(</span>E<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// f &#30340;&#31532;&#20108;&#20010;&#22768;&#26126;</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// f &#30340;&#31532;&#19977;&#20010;&#22768;&#26126;</span>
<span class="kw4">double</span> dd<span class="sy4">;</span>
<span class="kw4">void</span> h<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
g<span class="br0">(</span>e<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23454;&#20363;&#21270; g&lt;E&gt;&#65292;&#27492;&#22788;</span>
<span class="co1">// &#23545; &#39;f&#39; &#30340;&#31532;&#20108;&#27425;&#21644;&#31532;&#19977;&#27425;&#20351;&#29992;</span>
<span class="co1">// &#36827;&#34892;&#26597;&#25214;&#24182;&#25214;&#21040;&#20102; ::f(char)&#65288;&#24120;&#35268;&#26597;&#25214;&#65289;&#21644; ::f(E)&#65288;ADL&#65289;</span>
<span class="co1">// &#28982;&#21518;&#37325;&#36733;&#35299;&#26512;&#36873;&#25321;&#20102; ::f(E)&#12290;</span>
<span class="co1">// &#36825;&#35843;&#29992;&#20102; f(char)&#65292;&#28982;&#21518;&#20004;&#27425;&#35843;&#29992; f(E)</span>
g<span class="br0">(</span><span class="nu0">32</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23454;&#20363;&#21270; g&lt;int&gt;&#65292;&#27492;&#22788;</span>
<span class="co1">// &#23545; &#39;f&#39; &#30340;&#31532;&#20108;&#27425;&#21644;&#31532;&#19977;&#27425;&#20351;&#29992;</span>
<span class="co1">// &#36827;&#34892;&#20102;&#26597;&#25214;&#20165;&#25214;&#21040;&#20102; ::f(char)</span>
<span class="co1">// &#28982;&#21518;&#37325;&#36733;&#35299;&#26512;&#36873;&#25321;&#20102; ::f(char)</span>
<span class="co1">// &#36825;&#19977;&#27425;&#35843;&#29992;&#20102; f(char)</span>
<span class="br0">}</span>
<span class="kw1">typedef</span> <span class="kw4">double</span> A<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">class</span> B <span class="br0">{</span>
<span class="kw1">typedef</span> <span class="kw4">int</span> A<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> X <span class="sy4">:</span> B<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> <span class="br0">{</span>
A a<span class="sy4">;</span> <span class="co1">// &#23545; A &#30340;&#26597;&#25214;&#25214;&#21040;&#20102; ::A (double)&#65292;&#32780;&#19981;&#26159; B&lt;T&gt;::A</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<p>&#27880;&#65306;&#20851;&#20110;&#36825;&#26465;&#35268;&#21017;&#30340;&#30456;&#20851;&#32536;&#30001;&#21644;&#20854;&#24433;&#21709;&#65292;&#35831;&#21442;&#35265;<a href="cpp-language-dependent_name.html#.E6.9F.A5.E6.89.BE.E8.A7.84.E5.88.99">&#24453;&#20915;&#21517;&#30340;&#26597;&#25214;&#35268;&#21017;</a>&#12290;</p>
<h3><span class="mw-headline" id=".E6.A8.A1.E6.9D.BF.E5.90.8D">&#27169;&#26495;&#21517;</span></h3>
<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;&#27169;&#26495;&#21517;&#21518;&#30340; -&gt; &#21644; . &#30340;&#21452;&#20316;&#29992;&#22495;&#26597;&#25214;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.A8.A1.E6.9D.BF.E5.A4.96.E7.9A.84.E7.B1.BB.E6.A8.A1.E6.9D.BF.E6.88.90.E5.91.98">&#27169;&#26495;&#22806;&#30340;&#31867;&#27169;&#26495;&#25104;&#21592;</span></h3>
<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;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-c++11">
<ul>
<li>C++11 &#26631;&#20934;&#65288;ISO/IEC 14882:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>3.4 Name lookup [basic.lookup]</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>10.2 Member name lookup [class.member.lookup]</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>14.6 Name resolution [temp.res]</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c++98">
<ul>
<li>C++98 &#26631;&#20934;&#65288;ISO/IEC 14882:1998&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>3.4 Name lookup [basic.lookup]</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>10.2 Member name lookup [class.member.lookup]</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>14.6 Name resolution [temp.res]</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<ul>
<li><a href="cpp-language-qualified_lookup.html">&#26377;&#38480;&#23450;&#21517;&#23383;&#26597;&#25214;</a></li>
<li><a href="cpp-language-scope.html">&#20316;&#29992;&#22495;</a></li>
<li><a href="cpp-language-adl.html">&#23454;&#21442;&#20381;&#36182;&#26597;&#25214;</a></li>
<li><a href="cpp-language-function_template.html">&#27169;&#26495;&#23454;&#21442;&#25512;&#23548;</a></li>
<li><a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#20915;&#35758;</a></li>
</ul>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>