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

372 lines
43 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>&#32858;&#21512;&#21021;&#22987;&#21270;</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_aggregate_initialization skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#32858;&#21512;&#21021;&#22987;&#21270;</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>&#20174;&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#21021;&#22987;&#21270;&#32858;&#21512;&#20307;&#12290;</p>
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">T</span> <span class="t-spar">&#23545;&#35937;</span> <code><b>=</b></code> <code><b>{</b></code><span class="t-spar">&#23454;&#21442;1, &#23454;&#21442;2, ...</span><code><b>}</b></code><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">T</span> <span class="t-spar">&#23545;&#35937;</span> <code><b>{</b></code><span class="t-spar">&#23454;&#21442;1, &#23454;&#21442;2, ...</span> <code><b>}</b></code><code><b>;</b></code></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">T</span> <span class="t-spar">&#23545;&#35937;</span> <code><b>=</b></code> <code><b>{</b></code> <code><b>.</b></code><span class="t-spar">&#25351;&#27966;&#31526;</span> <code><b>=</b></code> <span class="t-spar">&#23454;&#21442;1</span> <code><b>,</b></code> <code><b>.</b></code><span class="t-spar">&#25351;&#27966;&#31526;</span> <code><b>{</b></code> <span class="t-spar">&#23454;&#21442;2</span> <code><b>}</b></code> ... <code><b>}</b></code><code><b>;</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">T</span> <span class="t-spar">&#23545;&#35937;</span> <code><b>{</b></code> <code><b>.</b></code><span class="t-spar">&#25351;&#27966;&#31526;</span> <code><b>=</b></code> <span class="t-spar">&#23454;&#21442;1</span> <code><b>,</b></code> <code><b>.</b></code><span class="t-spar">&#25351;&#27966;&#31526;</span> <code><b>{</b></code> <span class="t-spar">&#23454;&#21442;2</span> <code><b>}</b></code> ... <code><b>}</b></code><code><b>;</b></code></td>
<td>(4)</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">T</span> <span class="t-spar">&#23545;&#35937;</span> <code><b>(</b></code><span class="t-spar">&#23454;&#21442;1, &#23454;&#21442;2, ...</span><code><b>)</b></code><code><b>;</b></code></td>
<td>(5)</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p>&#32858;&#21512;&#21021;&#22987;&#21270;&#23545;<i>&#32858;&#21512;&#20307;</i>&#36827;&#34892;&#21021;&#22987;&#21270;&#12290;<span class="t-rev-inl t-since-cxx11"><span>&#23427;&#26159;<a href="cpp-language-list_initialization.html">&#21015;&#34920;&#21021;&#22987;&#21270;</a></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span><span class="t-rev-inl t-since-cxx20"><span>&#65292;&#25110;<a href="cpp-language-direct_initialization.html">&#30452;&#25509;&#21021;&#22987;&#21270;</a></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>&#30340;&#19968;&#31181;&#24418;&#24335;&#12290;</p>
<p>&#32858;&#21512;&#20307;&#26159;&#19979;&#21015;&#31867;&#22411;&#20043;&#19968;&#65306;</p>
<ul>
<li>&#25968;&#32452;&#31867;&#22411;</li>
<li>&#31526;&#21512;&#20197;&#19979;&#26465;&#20214;&#30340;&#31867;&#31867;&#22411;&#65288;&#24120;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">struct</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">union</span></span></span>&#65289;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;&#31169;&#26377;&#25110;&#21463;&#20445;&#25252;&#30340;<span class="t-rev-inl t-since-cxx17"><span>&#30452;&#25509;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;</li>
</ul>
</dd>
</dl>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;&#29992;&#25143;&#22768;&#26126;&#30340;&#26500;&#36896;&#20989;&#25968;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11 t-until-cxx17">
<td>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;&#29992;&#25143;&#25552;&#20379;&#30340;&#26500;&#36896;&#20989;&#25968;&#65288;&#20801;&#35768;&#26174;&#24335;&#39044;&#32622;&#25110;&#24323;&#32622;&#30340;&#26500;&#36896;&#20989;&#25968;&#65289;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx17 t-until-cxx20">
<td>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;&#29992;&#25143;&#25552;&#20379;&#12289;&#32487;&#25215;&#25110; explicit &#30340;&#26500;&#36896;&#20989;&#25968;&#65288;&#20801;&#35768;&#26174;&#24335;&#39044;&#32622;&#25110;&#24323;&#32622;&#30340;&#26500;&#36896;&#20989;&#25968;&#65289;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx20">
<td>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;&#29992;&#25143;&#22768;&#26126;&#25110;&#32487;&#25215;&#30340;&#26500;&#36896;&#20989;&#25968;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;<span class="t-rev-inl t-since-cxx17"><span>&#34394;&#12289;&#31169;&#26377;&#25110;&#21463;&#20445;&#25252;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#30340;&#22522;&#31867;</li>
<li>&#27809;&#26377;&#34394;&#25104;&#21592;&#20989;&#25968;</li>
</ul>
</dd>
</dl>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11 t-until-cxx14">
<td>
<dl>
<dd>
<ul>
<li>&#27809;&#26377;<a href="cpp-language-data_members.html#.E6.88.90.E5.91.98.E5.88.9D.E5.A7.8B.E5.8C.96">&#40664;&#35748;&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;</a></li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx14">(C++14 &#21069;)</span></td>
</tr>
</table>
<p>&#32858;&#21512;&#21021;&#22987;&#21270;&#30340;&#25928;&#26524;&#26159;&#65306;</p>
<ul>
<li>&#27599;&#20010;<span class="t-rev-inl t-since-cxx17"><span>&#30452;&#25509;&#20844;&#24320;&#22522;&#31867;&#12289;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#25968;&#32452;&#20803;&#32032;&#25110;&#38750;&#38745;&#24577;&#31867;&#25104;&#21592;&#65292;&#20197;&#25968;&#32452;&#19979;&#26631;/&#20986;&#29616;&#20110;&#31867;&#23450;&#20041;&#30340;&#39034;&#24207;&#65292;&#20174;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#20013;&#30340;&#23545;&#24212;&#23376;&#21477;&#36827;&#34892;<a href="cpp-language-copy_initialization.html">&#22797;&#21046;&#21021;&#22987;&#21270;</a>&#12290;</li>
</ul>
<ul>
<li>&#22914;&#26524;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#26159;&#34920;&#36798;&#24335;&#65292;&#37027;&#20040;&#26681;&#25454;&#22797;&#21046;&#21021;&#22987;&#21270;&#20801;&#35768;&#36827;&#34892;&#38544;&#24335;&#36716;&#25442;<span class="t-rev-inl t-since-cxx11"><span>&#65292;&#20294;&#23545;&#20110;<a href="cpp-language-list_initialization.html">&#21015;&#34920;&#21021;&#22987;&#21270;</a>&#24418;&#24335;&#31105;&#27490;&#31364;&#21270;&#36716;&#25442;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#12290;</li>
</ul>
<ul>
<li>&#22914;&#26524;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#26159;&#23884;&#22871;&#30340;&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#65288;&#23427;&#19981;&#26159;&#34920;&#36798;&#24335;&#65289;&#65292;&#37027;&#20040;&#23427;&#23545;&#24212;&#30340;&#25968;&#32452;&#20803;&#32032;/&#31867;&#25104;&#21592;<span class="t-rev-inl t-since-cxx17"><span>/&#20844;&#24320;&#22522;&#31867;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#20174;&#35813;&#23376;&#21477;&#36827;&#34892;<a href="cpp-language-list_initialization.html">&#21015;&#34920;&#21021;&#22987;&#21270;</a>&#65306;&#32858;&#21512;&#21021;&#22987;&#21270;&#26159;&#36882;&#24402;&#30340;&#12290;</li>
</ul>
<ul>
<li>&#22914;&#26524;&#23545;&#35937;&#26159;&#26410;&#30693;&#22823;&#23567;&#30340;&#25968;&#32452;&#65292;&#19988;&#25152;&#25552;&#20379;&#30340;&#33457;&#25324;&#21495;&#29615;&#32469;&#30340;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#25317;&#26377; <code>n</code> &#20010;&#23376;&#21477;&#65292;&#37027;&#20040;&#35813;&#25968;&#32452;&#30340;&#22823;&#23567;&#26159; <code>n</code>&#12290;&#65288;&#27880;&#24847;&#27492;&#26102;&#23545;&#35937;&#19981;&#33021;&#26159;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#65306;&#25104;&#21592;&#24517;&#39035;&#25317;&#26377;&#23436;&#25972;&#31867;&#22411;&#12290;&#65289;</li>
</ul>
<ul>
<li>&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#21644;&#26080;&#21517;&#20301;&#22495;&#22312;&#32858;&#21512;&#21021;&#22987;&#21270;&#20013;&#34987;&#36339;&#36807;&#12290;</li>
</ul>
<ul>
<li>&#22914;&#26524;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#30340;&#25968;&#37327;&#36229;&#20986;&#25152;&#35201;&#21021;&#22987;&#21270;&#30340;&#25104;&#21592;<span class="t-rev-inl t-since-cxx17"><span>&#21644;&#22522;&#31867;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#30340;&#25968;&#37327;&#65292;&#37027;&#20040;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<ul>
<li>&#22914;&#26524;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#30340;&#25968;&#37327;&#23569;&#20110;&#25104;&#21592;&#30340;&#25968;&#37327;&#65292;&#25110;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#23436;&#20840;&#20026;&#31354;&#65292;&#37027;&#20040;&#21097;&#20313;&#25104;&#21592;&#34987;<a href="cpp-language-value_initialization.html">&#20540;&#21021;&#22987;&#21270;</a>&#12290;&#22914;&#26524;&#36825;&#20123;&#21097;&#20313;&#25104;&#21592;&#30340;&#31867;&#22411;&#20013;&#26377;&#24341;&#29992;&#31867;&#22411;&#65292;&#37027;&#20040;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11">
<td>
<ul>
<li>&#22914;&#26524;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#30340;&#25968;&#37327;&#23569;&#20110;&#25104;&#21592;<span class="t-rev-inl t-since-cxx17"><span>&#21644;&#22522;&#31867;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#30340;&#25968;&#37327;&#65292;&#25110;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#23436;&#20840;&#20026;&#31354;&#65292;&#37027;&#20040;&#21097;&#20313;&#25104;&#21592;<span class="t-rev-inl t-since-cxx17"><span>&#21644;&#22522;&#31867;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#20250;&#25353;&#29031;&#36890;&#24120;&#30340;<a href="cpp-language-list_initialization.html">&#21015;&#34920;&#21021;&#22987;&#21270;</a>&#35268;&#21017;&#65288;&#23545;&#38750;&#31867;&#31867;&#22411;&#21644;&#25317;&#26377;&#40664;&#35748;&#26500;&#36896;&#20989;&#25968;&#30340;&#38750;&#32858;&#21512;&#31867;&#36827;&#34892;&#20540;&#21021;&#22987;&#21270;&#65292;&#24182;&#23545;&#32858;&#21512;&#20307;&#36827;&#34892;&#32858;&#21512;&#21021;&#22987;&#21270;&#65289;&#65292;<span class="t-rev-inl t-since-cxx14"><span>&#22312;&#31867;&#23450;&#20041;&#20013;&#26377;&#25552;&#20379;<a href="cpp-language-data_members.html#.E6.88.90.E5.91.98.E5.88.9D.E5.A7.8B.E5.8C.96">&#40664;&#35748;&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;</a>&#30340;&#24773;&#20917;&#19979;&#29992;&#23427;&#21021;&#22987;&#21270;&#65292;&#21542;&#21017;</span> <span><span class="t-mark-rev t-since-cxx14">(C++14 &#36215;)</span></span></span>&#20174;&#31354;&#21015;&#34920;&#22797;&#21046;&#21021;&#22987;&#21270;&#12290;&#22914;&#26524;&#36825;&#20123;&#21097;&#20313;&#25104;&#21592;&#30340;&#31867;&#22411;&#20013;&#26377;&#24341;&#29992;&#31867;&#22411;&#65292;&#37027;&#20040;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<ul>
<li>&#24403;&#32858;&#21512;&#21021;&#22987;&#21270;&#32852;&#21512;&#20307;&#26102;&#65292;&#21482;&#21021;&#22987;&#21270;&#20854;&#39318;&#20010;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#12290;</li>
</ul>
<p>&#21487;&#28040;&#38500;&#65288;&#30465;&#30053;&#65289;&#29615;&#32469;&#23884;&#22871;&#30340;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#30340;&#33457;&#25324;&#21495;&#65292;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#20351;&#29992;&#25152;&#38656;&#25968;&#37327;&#30340;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#21021;&#22987;&#21270;&#23545;&#24212;&#30340;&#23376;&#32858;&#21512;&#20307;&#30340;&#21508;&#20010;&#25104;&#21592;&#25110;&#20803;&#32032;&#65292;&#32780;&#21518;&#32487;&#30340;&#21508;&#20010;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#34987;&#29992;&#20110;&#21021;&#22987;&#21270;&#23545;&#35937;&#20013;&#30340;&#21518;&#32493;&#25104;&#21592;&#12290;&#28982;&#32780;&#65292;&#22914;&#26524;&#23545;&#35937;&#25317;&#26377;&#19981;&#24102;&#20219;&#20309;&#25104;&#21592;&#30340;&#23376;&#32858;&#21512;&#20307;&#65288;&#31354;&#32467;&#26500;&#20307;&#65292;&#25110;&#21482;&#20445;&#26377;&#38745;&#24577;&#25104;&#21592;&#30340;&#32467;&#26500;&#20307;&#65289;&#65292;&#21017;&#19981;&#20801;&#35768;&#28040;&#38500;&#33457;&#25324;&#21495;&#32780;&#24517;&#39035;&#20351;&#29992;&#19968;&#20010;&#31354;&#30340;&#23884;&#22871;&#21015;&#34920; <code><b>{}</b></code>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<h3><span class="mw-headline" id=".E6.8C.87.E6.B4.BE.E5.88.9D.E5.A7.8B.E5.8C.96.E5.99.A8">&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;</span></h3>
<p>&#35821;&#27861;&#24418;&#24335; <span class="t-v">(3,4)</span> &#34987;&#31216;&#20026;&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#65306;&#27599;&#20010; <span class="t-spar">&#25351;&#27966;&#31526;</span> &#24517;&#39035;&#25351;&#21517; T &#30340;&#19968;&#20010;&#30452;&#25509;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#65292;&#32780;&#34920;&#36798;&#24335;&#20013;&#25152;&#29992;&#30340;&#25152;&#26377; <span class="t-spar">&#25351;&#27966;&#31526;</span> &#24517;&#39035;&#25353;&#29031;&#19982; T &#30340;&#25968;&#25454;&#25104;&#21592;&#30456;&#21516;&#30340;&#39034;&#24207;&#20986;&#29616;&#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> A <span class="br0">{</span> <span class="kw4">int</span> x<span class="sy4">;</span> <span class="kw4">int</span> y<span class="sy4">;</span> <span class="kw4">int</span> z<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
A a<span class="br0">{</span>.<span class="me1">y</span> <span class="sy1">=</span> <span class="nu0">2</span>, .<span class="me1">x</span> <span class="sy1">=</span> <span class="nu0">1</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#25351;&#27966;&#31526;&#30340;&#39034;&#24207;&#19981;&#21305;&#37197;&#22768;&#26126;&#39034;&#24207;</span>
A b<span class="br0">{</span>.<span class="me1">x</span> <span class="sy1">=</span> <span class="nu0">1</span>, .<span class="me1">z</span> <span class="sy1">=</span> <span class="nu0">2</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// OK&#65306;b.y &#34987;&#21021;&#22987;&#21270;&#20026; 0</span></pre></div>
</div>
<p>&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#25152;&#25351;&#21517;&#30340;&#27599;&#20010;&#30452;&#25509;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#65292;&#20174;&#20854;&#25351;&#27966;&#31526;&#21518;&#38543;&#30340;&#23545;&#24212;&#33457;&#25324;&#21495;&#25110;&#31561;&#21495;&#21021;&#22987;&#21270;&#22120;&#21021;&#22987;&#21270;&#12290;&#31105;&#27490;&#31364;&#21270;&#36716;&#25442;&#12290;</p>
<p>&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#21487;&#29992;&#20110;&#23558;<a href="cpp-language-union.html">&#32852;&#21512;&#20307;</a>&#21021;&#22987;&#21270;&#20026;&#20854;&#39318;&#20010;&#25104;&#21592;&#20043;&#22806;&#30340;&#29366;&#24577;&#12290;&#21482;&#21487;&#20197;&#20026;&#19968;&#20010;&#32852;&#21512;&#20307;&#25552;&#20379;&#19968;&#20010;&#21021;&#22987;&#21270;&#22120;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">union</span> u <span class="br0">{</span> <span class="kw4">int</span> a<span class="sy4">;</span> <span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> b<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
u f <span class="sy1">=</span> <span class="br0">{</span> .<span class="me1">b</span> <span class="sy1">=</span> <span class="st0">&quot;asdf&quot;</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#32852;&#21512;&#20307;&#30340;&#27963;&#36291;&#25104;&#21592;&#20026; b</span>
u g <span class="sy1">=</span> <span class="br0">{</span> .<span class="me1">a</span> <span class="sy1">=</span> <span class="nu0">1</span>, .<span class="me1">b</span> <span class="sy1">=</span> <span class="st0">&quot;asdf&quot;</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#21482;&#21487;&#25552;&#20379;&#19968;&#20010;&#21021;&#22987;&#21270;&#22120;</span></pre></div>
</div>
<p>&#23545;&#20110;&#38750;&#32852;&#21512;&#20307;&#30340;&#32858;&#21512;&#20307;&#20013;&#26410;&#25552;&#20379;&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#30340;&#20803;&#32032;&#65292;&#25353;&#19978;&#36848;&#38024;&#23545;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#30340;&#25968;&#37327;&#23569;&#20110;&#25104;&#21592;&#25968;&#37327;&#26102;&#30340;&#35268;&#21017;&#36827;&#34892;&#21021;&#22987;&#21270;&#65288;&#22914;&#26524;&#25552;&#20379;&#40664;&#35748;&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;&#21017;&#20351;&#29992;&#23427;&#65292;&#21542;&#21017;&#20026;&#31354;&#21015;&#34920;&#21021;&#22987;&#21270;&#65289;&#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>
string a<span class="sy4">;</span>
<span class="kw4">int</span> b <span class="sy1">=</span> <span class="nu0">42</span><span class="sy4">;</span>
<span class="kw4">int</span> c <span class="sy1">=</span> <span class="sy2">-</span><span class="nu0">1</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
A<span class="br0">{</span>.<span class="me1">c</span><span class="sy1">=</span><span class="nu0">21</span><span class="br0">}</span> <span class="co1">// &#20197; {} &#21021;&#22987;&#21270; a&#65292;&#36825;&#26679;&#20250;&#35843;&#29992;&#40664;&#35748;&#26500;&#36896;&#20989;&#25968;</span>
<span class="co1">// &#28982;&#21518;&#20197; = 42 &#21021;&#22987;&#21270; b</span>
<span class="co1">// &#28982;&#21518;&#20197; = 21 &#21021;&#22987;&#21270; c</span></pre></div>
</div>
<p>&#22914;&#26524;&#20197;&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#21021;&#22987;&#21270;&#30340;&#32858;&#21512;&#20307;&#25317;&#26377;&#19968;&#20010;&#21311;&#21517;&#32852;&#21512;&#20307;&#25104;&#21592;&#65292;&#37027;&#20040;&#23545;&#24212;&#30340;&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#24517;&#39035;&#25351;&#21517;&#35813;&#21311;&#21517;&#32852;&#21512;&#20307;&#30340;&#20854;&#20013;&#19968;&#20010;&#25104;&#21592;&#12290;</p>
<p>&#27880;&#24847;&#65306;&#20081;&#24207;&#30340;&#25351;&#27966;&#21021;&#22987;&#21270;&#12289;&#23884;&#22871;&#30340;&#25351;&#27966;&#21021;&#22987;&#21270;&#12289;&#25351;&#27966;&#21021;&#22987;&#21270;&#22120;&#19982;&#24120;&#35268;&#21021;&#22987;&#21270;&#22120;&#30340;&#28151;&#21512;&#65292;&#20197;&#21450;&#25968;&#32452;&#30340;&#25351;&#27966;&#21021;&#22987;&#21270;&#22312; <a href="c-language-struct_initialization.html">C &#32534;&#31243;&#35821;&#35328;</a>&#20013;&#21463;&#25903;&#25345;&#65292;&#20294;&#22312; C++ &#19981;&#20801;&#35768;&#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> A <span class="br0">{</span> <span class="kw4">int</span> x, y<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> B <span class="br0">{</span> <span class="kw1">struct</span> A a<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> A a <span class="sy1">=</span> <span class="br0">{</span>.<span class="me1">y</span> <span class="sy1">=</span> <span class="nu0">1</span>, .<span class="me1">x</span> <span class="sy1">=</span> <span class="nu0">2</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21512;&#27861; C&#65292;&#38750;&#27861; C++&#65288;&#20081;&#24207;&#65289;</span>
<span class="kw4">int</span> arr<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy1">=</span> <span class="nu0">5</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21512;&#27861; C&#65292;&#38750;&#27861; C++&#65288;&#25968;&#32452;&#65289;</span>
<span class="kw1">struct</span> B b <span class="sy1">=</span> <span class="br0">{</span>.<span class="me1">a</span>.<span class="me1">x</span> <span class="sy1">=</span> <span class="nu0">0</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21512;&#27861; C&#65292;&#38750;&#27861; C++&#65288;&#23884;&#22871;&#65289;</span>
<span class="kw1">struct</span> A a <span class="sy1">=</span> <span class="br0">{</span>.<span class="me1">x</span> <span class="sy1">=</span> <span class="nu0">1</span>, <span class="nu0">2</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21512;&#27861; C&#65292;&#38750;&#27861; C++&#65288;&#28151;&#21512;&#65289;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.AD.97.E7.AC.A6.E6.95.B0.E7.BB.84">&#23383;&#31526;&#25968;&#32452;</span></h3>
<p>&#36890;&#24120;&#23383;&#31526;&#31867;&#22411;&#65288;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span></span></span>&#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">char</span></span></span>&#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">char</span></span></span>&#65289;<span class="t-rev-inl t-since-cxx20"><span>&#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">char8_t</span></span></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span><span class="t-rev-inl t-since-cxx11"><span>&#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char16_t</span></span></span>&#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char32_t</span></span></span></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span></span></span> &#30340;&#25968;&#32452;&#33021;&#20998;&#21035;&#20174;&#36890;&#24120;<a href="cpp-language-string_literal.html">&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</a><span class="t-rev-inl t-since-cxx20"><span>&#12289; UTF-8 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span><span class="t-rev-inl t-since-cxx11"><span>&#12289; UTF-16 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12289; UTF-32 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#25110;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21021;&#22987;&#21270;&#65292;&#21487;&#20197;&#20197;&#33457;&#25324;&#21495;&#29615;&#32469;&#12290;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#30456;&#32487;&#23383;&#31526;&#65288;&#21253;&#21547;&#38544;&#21547;&#30340;&#31354;&#32456;&#27490;&#23383;&#31526;&#65289;&#21021;&#22987;&#21270;&#21508;&#25968;&#32452;&#20803;&#32032;&#12290;&#22914;&#26524;&#25968;&#32452;&#22823;&#23567;&#34987;&#25351;&#23450;&#19988;&#22823;&#20110;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20013;&#30340;&#23383;&#31526;&#25968;&#65292;&#37027;&#20040;&#21097;&#20313;&#23383;&#31526;&#20250;&#34987;&#38646;&#21021;&#22987;&#21270;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">char</span> a<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">// &#31561;&#20215;&#20110; char a[4] = {&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;\0&#39;};</span>
<span class="co1">// unsigned char b[3] = &quot;abc&quot;; // &#38169;&#35823;&#65306;&#21021;&#22987;&#21270;&#22120;&#23383;&#31526;&#20018;&#22826;&#38271;</span>
<span class="kw4">unsigned</span> <span class="kw4">char</span> b<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span><span class="br0">{</span><span class="st0">&quot;abc&quot;</span><span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// &#31561;&#20215;&#20110; unsigned char b[5] = {&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;\0&#39;, &#39;\0&#39;};</span>
<span class="kw4">wchar_t</span> c<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span>L<span class="st0">&quot;&#1082;&#1086;&#1096;&#1082;&#1072;&quot;</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21487;&#36873;&#30340;&#33457;&#25324;&#21495;</span>
<span class="co1">// &#31561;&#20215;&#20110; wchar_t c[6] = {L&#39;&#1082;&#39;, L&#39;&#1086;&#39;, L&#39;&#1096;&#39;, L&#39;&#1082;&#39;, L&#39;&#1072;&#39;, L&#39;\0&#39;};</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#32858;&#21512;&#31867;&#25110;&#25968;&#32452;&#21487;&#20197;&#21253;&#21547;&#38750;&#32858;&#21512;&#30340;<span class="t-rev-inl t-since-cxx17"><span>&#20844;&#24320;&#22522;&#31867;&#12289;</span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span>&#25104;&#21592;&#25110;&#20803;&#32032;&#65292;&#23427;&#20204;&#20197;&#19978;&#36848;&#26041;&#24335;&#21021;&#22987;&#21270;&#65288;&#20363;&#22914;&#20174;&#23545;&#24212;&#30340;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;&#22797;&#21046;&#21021;&#22987;&#21270;&#65289;</p>
<p>C++11 &#21069;&#65292;&#32858;&#21512;&#21021;&#22987;&#21270;&#20013;&#26366;&#20801;&#35768;&#31364;&#21270;&#36716;&#25442;&#65292;&#20294;&#27492;&#21518;&#19981;&#20877;&#34987;&#20801;&#35768;&#65292;&#20294;&#20174; C++20 &#36215;&#32858;&#21512;&#21021;&#22987;&#21270;&#20351;&#29992;&#22278;&#25324;&#21495;&#26102;&#20801;&#35768;&#23427;&#20204;&#12290;</p>
<p>C++11 &#21069;&#65292;&#30001;&#20110;&#35821;&#27861;&#38480;&#21046;&#65292;&#32858;&#21512;&#21021;&#22987;&#21270;&#21482;&#33021;&#29992;&#20110;&#21464;&#37327;&#23450;&#20041;&#65292;&#32780;&#19981;&#33021;&#29992;&#20110;<a href="cpp-language-constructor.html">&#26500;&#36896;&#20989;&#25968;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</a>&#12289; <a href="cpp-language-new.html">new &#34920;&#36798;&#24335;</a>&#25110;&#20020;&#26102;&#23545;&#35937;&#21019;&#24314;&#12290;</p>
<p>C &#20013;&#65292;&#38271;&#24230;&#27604;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#22823;&#23567;&#23569;&#19968;&#30340;&#23383;&#31526;&#25968;&#32452;&#21487;&#20197;&#20174;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21021;&#22987;&#21270;&#65307;&#20135;&#29983;&#30340;&#25968;&#32452;&#26159;&#38750;&#31354;&#32456;&#27490;&#30340;&#12290;&#36825;&#22312; C++ &#20013;&#19981;&#20801;&#35768;&#12290;</p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;string&gt;</span>
<span class="co2">#include &lt;array&gt;</span>
<span class="kw1">struct</span> S <span class="br0">{</span>
<span class="kw4">int</span> x<span class="sy4">;</span>
<span class="kw1">struct</span> Foo <span class="br0">{</span>
<span class="kw4">int</span> i<span class="sy4">;</span>
<span class="kw4">int</span> j<span class="sy4">;</span>
<span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="sy4">;</span>
<span class="br0">}</span> b<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">union</span> U <span class="br0">{</span>
<span class="kw4">int</span> a<span class="sy4">;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> b<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>
S s1 <span class="sy1">=</span> <span class="br0">{</span> <span class="nu0">1</span>, <span class="br0">{</span> <span class="nu0">2</span>, <span class="nu0">3</span>, <span class="br0">{</span><span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span><span class="sy4">;</span>
S s2 <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="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#30456;&#21516;&#65292;&#20294;&#26377;&#33457;&#25324;&#21495;&#28040;&#38500;</span>
S s3<span class="br0">{</span><span class="nu0">1</span>, <span class="br0">{</span><span class="nu0">2</span>, <span class="nu0">3</span>, <span class="br0">{</span><span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#30456;&#21516;&#65292;&#20351;&#29992;&#30452;&#25509;&#21015;&#34920;&#21021;&#22987;&#21270;&#35821;&#27861;</span>
S s4<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="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// CWG 1270 &#21069;&#38169;&#35823;&#65306;&#33457;&#25324;&#21495;&#28040;&#38500;&#20165;&#20801;&#35768;&#19982;&#31561;&#21495;&#19968;&#36215;&#20351;&#29992;</span>
<span class="kw4">int</span> ar<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// ar &#20026; int[3]</span>
<span class="kw4">int</span> ab<span class="br0">[</span><span class="br0">]</span> <span class="br0">(</span><span class="nu0">1</span>, <span class="nu0">2</span>, <span class="nu0">3</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// (C++20) ab &#20026; int[3] </span>
<span class="co1">// char cr[3] = {&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;}; // &#36807;&#22810;&#21021;&#22987;&#21270;&#22120;&#23376;&#21477;</span>
<span class="kw4">char</span> cr<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="st0">&#39;a&#39;</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#25968;&#32452;&#21021;&#22987;&#21270;&#20026; {&#39;a&#39;, &#39;\0&#39;, &#39;\0&#39;}</span>
<span class="kw4">int</span> ar2d1<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <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="nu0">3</span>, <span class="nu0">4</span><span class="br0">}</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#23436;&#20840;&#33457;&#25324;&#21495;&#30340; 2D &#25968;&#32452;&#65306; {1, 2}</span>
<span class="co1">// {3, 4}</span>
<span class="kw4">int</span> ar2d2<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">2</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="co1">// &#33457;&#25324;&#21495;&#28040;&#38500;&#65306; {1, 2}</span>
<span class="co1">// {3, 4}</span>
<span class="kw4">int</span> ar2d3<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="br0">{</span><span class="nu0">1</span><span class="br0">}</span>, <span class="br0">{</span><span class="nu0">2</span><span class="br0">}</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#20165;&#31532;&#19968;&#21015;&#65306; {1, 0}</span>
<span class="co1">// {2, 0}</span>
<a href="cpp-container-array.html"><span class="kw1268">std::<span class="me2">array</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, <span class="nu0">3</span><span class="sy1">&gt;</span> std_ar2<span class="br0">{</span> <span class="br0">{</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">}</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// std::array &#26159;&#32858;&#21512;&#20307;</span>
<a href="cpp-container-array.html"><span class="kw1268">std::<span class="me2">array</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, <span class="nu0">3</span><span class="sy1">&gt;</span> std_ar1 <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>, <span class="nu0">2</span>, <span class="nu0">3</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21487;&#20197;&#28040;&#38500;&#33457;&#25324;&#21495;</span>
<span class="kw4">int</span> ai<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span> <span class="nu0">1</span>, <span class="nu16">2.0</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#20174; double &#21040; int &#30340;&#31364;&#21270;&#36716;&#25442;&#65306;</span>
<span class="co1">// C++11 &#20013;&#38169;&#35823;&#65292;C++03 &#20013; OK</span>
<a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> ars<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="br0">(</span><span class="st0">&quot;one&quot;</span><span class="br0">)</span>, <span class="co1">// &#22797;&#21046;&#21021;&#22987;&#21270;</span>
<span class="st0">&quot;two&quot;</span>, <span class="co1">// &#36716;&#25442;&#65292;&#28982;&#21518;&#22797;&#21046;&#21021;&#22987;&#21270;</span>
<span class="br0">{</span><span class="st0">&#39;t&#39;</span>, <span class="st0">&#39;h&#39;</span>, <span class="st0">&#39;r&#39;</span>, <span class="st0">&#39;e&#39;</span>, <span class="st0">&#39;e&#39;</span><span class="br0">}</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#21015;&#34920;&#21021;&#22987;&#21270;</span>
U u1 <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#32852;&#21512;&#20307;&#30340;&#39318;&#20010;&#25104;&#21592;</span>
<span class="co1">// U u2 = { 0, &quot;asdf&quot; }; // &#38169;&#35823;&#65306;&#29992;&#36807;&#22810;&#30340;&#21021;&#22987;&#21270;&#22120;&#21021;&#22987;&#21270;&#32852;&#21512;&#20307;</span>
<span class="co1">// U u3 = { &quot;asdf&quot; }; // &#38169;&#35823;&#65306;&#21040; int &#30340;&#36716;&#25442;&#26080;&#25928;</span>
<span class="br0">[</span><span class="br0">]</span><span class="br0">(</span><span class="kw4">auto</span>...<span class="br0">)</span> <span class="br0">{</span> <a href="cpp-io-c-puts.html"><span class="kw1830">std::<span class="me2">puts</span></span></a><span class="br0">(</span><span class="st0">&quot;&#24223;&#24323;&#26080;&#29992;&#30340;&#21464;&#37327;&#12290;&#12290;&#12290; &#23436;&#25104;&#12290;&quot;</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="br0">(</span>
s1, s2, s3, s4, ar, ab, cr, ar2d1, ar2d2, ar2d3, std_ar2, std_ar1, u1
<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#32858;&#21512;&#20307;</span>
<span class="kw1">struct</span> base1 <span class="br0">{</span> <span class="kw4">int</span> b1, b2 <span class="sy1">=</span> <span class="nu0">42</span><span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// &#38750;&#32858;&#21512;&#20307;</span>
<span class="kw1">struct</span> base2 <span class="br0">{</span>
base2<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> b3<span class="br0">(</span><span class="nu0">42</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
<span class="kw4">int</span> b3<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// C++17 &#37324;&#26159;&#32858;&#21512;&#20307;</span>
<span class="kw1">struct</span> derived <span class="sy4">:</span> base1, base2 <span class="br0">{</span> <span class="kw4">int</span> d<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
derived d1<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="br0">}</span>, <span class="nu0">4</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// d1.b1 = 1, d1.b2 = 2, d1.b3 = 42, d1.d = 4</span>
derived d2<span class="br0">{</span> <span class="br0">{</span> <span class="br0">}</span>, <span class="br0">{</span> <span class="br0">}</span>, <span class="nu0">4</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// d2.b1 = 0, d2.b2 = 42, d2.b3 = 42, d2.d = 4</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">&#24223;&#24323;&#26080;&#29992;&#30340;&#21464;&#37327;&#12290;&#12290;&#12290; &#23436;&#25104;&#12290;</pre></div>
</div>
</div>
<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/issue1270">CWG 1270</a></td>
<td>C++11</td>
<td>&#20165;&#20801;&#35768;&#22312;&#22797;&#21046;&#21015;&#34920;&#21021;&#22987;&#21270;&#20013;&#20351;&#29992;&#33457;&#25324;&#21495;&#28040;&#38500;</td>
<td>&#22312;&#21035;&#22788;&#20063;&#20801;&#35768;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<ul>
<li><a href="cpp-language-copy_elision.html">&#22797;&#21046;&#28040;&#38500;</a></li>
<li><a href="cpp-language-initialization.html">&#21021;&#22987;&#21270;</a>
<ul>
<li><a href="cpp-language-constant_initialization.html">&#24120;&#37327;&#21021;&#22987;&#21270;</a></li>
<li><a href="cpp-language-list_initialization.html">&#21015;&#34920;&#21021;&#22987;&#21270;</a></li>
<li><a href="cpp-language-reference_initialization.html">&#24341;&#29992;&#21021;&#22987;&#21270;</a></li>
<li><a href="cpp-language-value_initialization.html">&#20540;&#21021;&#22987;&#21270;</a></li>
<li><a href="cpp-language-zero_initialization.html">&#38646;&#21021;&#22987;&#21270;</a></li>
</ul>
</li>
</ul>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>