<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: small;">模板主要有函数模板和类模板。模板的参数决定了它的特性。每一个参数可以代表下面三者之一:</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">类型(内建类型或用户自定义类型)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">编译时常量(如整型、指针和静态引用等,一般称这种参数为非类型参数)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">3.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">其它的模板。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: small;">默认参数类模板可以有,函数模板不能有。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">模板类</span><span lang="EN-US"><span style="font-family: Calibri;">/</span></span><span style="">函数声明和定义也能分开(之前看网上有人说不能分开),有两种方法:</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">建立中间文件(</span><span lang="EN-US"><span style="font-family: Calibri;">.cpp</span></span><span style="">)具体声明模板的类型。如:</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">//: C05:OurMin.h</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#ifndef OURMIN_H</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#define OURMIN_H</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// The declaration of min()</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">template<typename T> const T& min(const T&, const T&);</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#endif // OURMIN_H ///:~ </span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// OurMin.cpp</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#include "OurMin.h"</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// The definition of min()</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">template<typename T> const T& min(const T& a, const T& b) {</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US"><span style=""> </span>return (a < b) ? a : b;</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span style="" lang="EN-US">}</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span style="">可以使用中间文件:<span lang="EN-US"></span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">//: C05:MinInstances.cpp {O}</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include "OurMin.cpp" </span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">// Explicit Instantiations for int and double</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">template const int& min<int>(const int&, const int&);</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">template const double& min<double>(const double&,</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>const double&);</span></span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">///:~</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">在头文件中使用</span><span lang="EN-US"><span style="font-family: Calibri;">export</span></span><span style="">关键字声明(在实现文件中可以不使用,但最好使用,这样是好习惯)。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <algorithm></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <cstddef></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <functional></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <iostream></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <iterator></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">using namespace std;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">int main() {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>int a[] = { 10, 20, 30 };</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>const size_t SIZE = sizeof a / sizeof a[0];</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>remove_copy_if(a, a + SIZE,</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>ostream_iterator<int>(cout, "\n"),</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;"><span style=""> </span>bind2nd(greater<int>(), 15)); }//bind2nd</span></span><span style="">是模板函数,有两个参数:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">//</span></span><span style="">第一个是接受两个参数的内部函数,第二个是内部函数的第二个参数,第一个参数由</span><span lang="EN-US"><span style="font-family: Calibri;">a</span></span><span style="">的</span><span lang="EN-US"><span style="font-family: Calibri;">//</span></span><span style="">值传给</span><span lang="EN-US"><span style="font-family: Calibri;">bind2nd</span></span><span style="">再传给内部函数。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: small;">常用模板生成函数:</span></span></p>
<p>
</p>
<table class="MsoNormalTable" style="margin: auto auto auto 23.4pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0">
<thead><tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Name</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Type</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Result produced </span></p>
</td>
</tr></thead>
<tbody>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Plus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 + arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Minus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 - arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Multiplies</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 * arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Divides</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 / arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Modulus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 % arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">UnaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">- arg1</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">equal_to</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 == arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">not_equal_to</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 != arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Greater</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 > arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Less</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 < arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">greater_equal</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 >= arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">less_equal</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 <= arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">logical_and</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 && arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Logical_or</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 || arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">logical_not</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">UnaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!arg1</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">unary_negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Unary Logical</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!(UnaryPredicate(arg1))</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">binary_negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Binary Logical</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!(BinaryPredicate(arg1, arg2))</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">多重继承避免重名:子类中引用重名函数或变量时,使用</span><span lang="EN-US"><span style="font-family: Calibri;">using classA::name</span></span><span style="">明确声名。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">要使用多重继承(</span><span lang="EN-US"><span style="font-family: Calibri;">MI</span></span><span style="">),必须同时满足两个条件:</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">需要在新类中暴露两个基类的公共接口吗?(看看能不能通过依赖关系,在新类中只暴露其中一个基类的部分接口。)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">需要能够向所有基类向上映射吗?</span><span style="font-family: Calibri;"> </span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">类型(内建类型或用户自定义类型)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">编译时常量(如整型、指针和静态引用等,一般称这种参数为非类型参数)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">3.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">其它的模板。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: small;">默认参数类模板可以有,函数模板不能有。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">模板类</span><span lang="EN-US"><span style="font-family: Calibri;">/</span></span><span style="">函数声明和定义也能分开(之前看网上有人说不能分开),有两种方法:</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">建立中间文件(</span><span lang="EN-US"><span style="font-family: Calibri;">.cpp</span></span><span style="">)具体声明模板的类型。如:</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">//: C05:OurMin.h</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#ifndef OURMIN_H</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#define OURMIN_H</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// The declaration of min()</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">template<typename T> const T& min(const T&, const T&);</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#endif // OURMIN_H ///:~ </span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// OurMin.cpp</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">#include "OurMin.h"</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">// The definition of min()</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US">template<typename T> const T& min(const T& a, const T& b) {</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt; text-indent: 24pt;"><span style="" lang="EN-US"><span style=""> </span>return (a < b) ? a : b;</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span style="" lang="EN-US">}</span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span style="">可以使用中间文件:<span lang="EN-US"></span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">//: C05:MinInstances.cpp {O}</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include "OurMin.cpp" </span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">// Explicit Instantiations for int and double</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">template const int& min<int>(const int&, const int&);</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">template const double& min<double>(const double&,</span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>const double&);</span></span></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0pt 42pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">///:~</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">在头文件中使用</span><span lang="EN-US"><span style="font-family: Calibri;">export</span></span><span style="">关键字声明(在实现文件中可以不使用,但最好使用,这样是好习惯)。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <algorithm></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <cstddef></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <functional></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <iostream></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">#include <iterator></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">using namespace std;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;">int main() {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>int a[] = { 10, 20, 30 };</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>const size_t SIZE = sizeof a / sizeof a[0];</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>remove_copy_if(a, a + SIZE,</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Calibri;"><span style=""> </span>ostream_iterator<int>(cout, "\n"),</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;"><span style=""> </span>bind2nd(greater<int>(), 15)); }//bind2nd</span></span><span style="">是模板函数,有两个参数:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">//</span></span><span style="">第一个是接受两个参数的内部函数,第二个是内部函数的第二个参数,第一个参数由</span><span lang="EN-US"><span style="font-family: Calibri;">a</span></span><span style="">的</span><span lang="EN-US"><span style="font-family: Calibri;">//</span></span><span style="">值传给</span><span lang="EN-US"><span style="font-family: Calibri;">bind2nd</span></span><span style="">再传给内部函数。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: small;">常用模板生成函数:</span></span></p>
<p>
</p>
<table class="MsoNormalTable" style="margin: auto auto auto 23.4pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0">
<thead><tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Name</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Type</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Result produced </span></p>
</td>
</tr></thead>
<tbody>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Plus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 + arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Minus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 - arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Multiplies</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 * arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Divides</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 / arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Modulus</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 % arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">UnaryFunction</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">- arg1</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">equal_to</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 == arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">not_equal_to</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 != arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Greater</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 > arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Less</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 < arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">greater_equal</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 >= arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">less_equal</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 <= arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">logical_and</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 && arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">Logical_or</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">BinaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">arg1 || arg2</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">logical_not</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">UnaryPredicate</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!arg1</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">unary_negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Unary Logical</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!(UnaryPredicate(arg1))</span></p>
</td>
</tr>
<tr style="height: 18.05pt;">
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 90pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="120" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><strong><span style="" lang="EN-US">binary_negate</span></strong><span style="" lang="EN-US"></span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 99pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="132" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">Binary Logical</span></p>
</td>
<td style="border-right: #ece9d8; padding-right: 5.4pt; border-top: #ece9d8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #ece9d8; width: 162pt; padding-top: 0cm; height: 18.05pt; background-color: transparent;" width="216" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="" lang="EN-US">!(BinaryPredicate(arg1, arg2))</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">多重继承避免重名:子类中引用重名函数或变量时,使用</span><span lang="EN-US"><span style="font-family: Calibri;">using classA::name</span></span><span style="">明确声名。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="">要使用多重继承(</span><span lang="EN-US"><span style="font-family: Calibri;">MI</span></span><span style="">),必须同时满足两个条件:</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style=""><span style="font-size: small;">需要在新类中暴露两个基类的公共接口吗?(看看能不能通过依赖关系,在新类中只暴露其中一个基类的部分接口。)</span></span></p>
<p class="MsoListParagraph" style=""><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span><span style="font-size: small;"><span style="">需要能够向所有基类向上映射吗?</span><span style="font-family: Calibri;"> </span></span></p>