⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typedecl_8h-source.html

📁 java 反射机制详解示例,实现类属性及方法修改
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00464         (((__C*)obj)-&gt;*f)(*(__P1*)params[0]);00465     }00466 };00467 00468 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2&gt;00469 <font class="keyword">class </font>RTTIProcType2 : <font class="keyword">public</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>{ 00470   <font class="keyword">public</font>:00471     <font class="keyword">typedef</font> void (__C::*fptr)(__P1, __P2);00472     fptr f;00473     RTTIProcType2(fptr f) { 00474         this-&gt;f = f;00475         methodClass = &amp;__C::RTTIDescriptor;00476         returnType = &amp;voidType;00477         nParams = 2;00478         paramTypes = <font class="keyword">new</font> <a class="code" href="classRTTIType.html">RTTIType</a>*[2];00479         paramTypes[0] = RTTITypeOfPtr((__P1*)0);00480         paramTypes[1] = RTTITypeOfPtr((__P2*)0);00481     }00482     <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>*, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* params[]) { 00483         (((__C*)obj)-&gt;*f)(*(__P1*)params[0], *(__P2*)params[1]);00484     }00485 };00486 00487 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3&gt;00488 <font class="keyword">class </font>RTTIProcType3 : <font class="keyword">public</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>{ 00489   <font class="keyword">public</font>:00490     <font class="keyword">typedef</font> void (__C::*fptr)(__P1, __P2, __P3);00491     fptr f;00492     RTTIProcType3(fptr f) { 00493         this-&gt;f = f;00494         methodClass = &amp;__C::RTTIDescriptor;00495         returnType = &amp;voidType;00496         nParams = 3;00497         paramTypes = <font class="keyword">new</font> <a class="code" href="classRTTIType.html">RTTIType</a>*[3];00498         paramTypes[0] = RTTITypeOfPtr((__P1*)0);00499         paramTypes[1] = RTTITypeOfPtr((__P2*)0);00500         paramTypes[2] = RTTITypeOfPtr((__P3*)0);00501     }00502     <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>*, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* params[]) { 00503         (((__C*)obj)-&gt;*f)(*(__P1*)params[0], *(__P2*)params[1], *(__P3*)params[2]);00504     }00505 };00506 00507 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4&gt;00508 <font class="keyword">class </font>RTTIProcType4 : <font class="keyword">public</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>{ 00509   <font class="keyword">public</font>:00510     <font class="keyword">typedef</font> void (__C::*fptr)(__P1, __P2, __P3, __P4);00511     fptr f;00512     RTTIProcType4(fptr f) { 00513         this-&gt;f = f;00514         methodClass = &amp;__C::RTTIDescriptor;00515         returnType = &amp;voidType;00516         nParams = 4;00517         paramTypes = <font class="keyword">new</font> <a class="code" href="classRTTIType.html">RTTIType</a>*[4];00518         paramTypes[0] = RTTITypeOfPtr((__P1*)0);00519         paramTypes[1] = RTTITypeOfPtr((__P2*)0);00520         paramTypes[2] = RTTITypeOfPtr((__P3*)0);00521         paramTypes[3] = RTTITypeOfPtr((__P4*)0);00522     }00523     <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>*, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* params[]) { 00524         (((__C*)obj)-&gt;*f)(*(__P1*)params[0], *(__P2*)params[1], *(__P3*)params[2], *(__P4*)params[3]);00525     }00526 };00527 00528 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4, <font class="keyword">class</font> __P5&gt;00529 <font class="keyword">class </font>RTTIProcType5 : <font class="keyword">public</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a> { 00530   <font class="keyword">public</font>:00531     <font class="keyword">typedef</font> void (__C::*fptr)(__P1, __P2, __P3, __P4, __P5);00532     fptr f;00533     RTTIProcType5(fptr f) { 00534         this-&gt;f = f;00535         methodClass = &amp;__C::RTTIDescriptor;00536         returnType = &amp;voidType;00537         nParams = 5;00538         paramTypes = <font class="keyword">new</font> <a class="code" href="classRTTIType.html">RTTIType</a>*[5];00539         paramTypes[0] = RTTITypeOfPtr((__P1*)0);00540         paramTypes[1] = RTTITypeOfPtr((__P2*)0);00541         paramTypes[2] = RTTITypeOfPtr((__P3*)0);00542         paramTypes[3] = RTTITypeOfPtr((__P4*)0);00543         paramTypes[4] = RTTITypeOfPtr((__P5*)0);00544     }00545     <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>*, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* params[]) { 00546         (((__C*)obj)-&gt;*f)(*(__P1*)params[0], *(__P2*)params[1], *(__P3*)params[2], *(__P4*)params[3], *(__P5*)params[4]);00547     }00548 };00549 00550 00551 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C&gt;00552 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)()) { 00553     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType0&lt;__RT, __C&gt;(f);00554 }00555 00556 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C, <font class="keyword">class</font> __P1&gt;00557 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)(__P1)) { 00558     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType1&lt;__RT, __C, __P1&gt;(f);00559 }00560 00561 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2&gt;00562 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)(__P1, __P2)) { 00563     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType2&lt;__RT, __C, __P1, __P2&gt;(f);00564 }00565 00566 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3&gt;00567 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)(__P1, __P2, __P3)) { 00568     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType3&lt;__RT, __C, __P1, __P2, __P3&gt;(f);00569 }00570 00571 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4&gt;00572 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)(__P1, __P2, __P3, __P4)) { 00573     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType4&lt;__RT, __C, __P1, __P2, __P3, __P4&gt;(f);00574 }00575 00576 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __RT, <font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4, <font class="keyword">class</font> __P5&gt;00577 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIFuncTypeOf(__RT (__C::*f)(__P1, __P2, __P3, __P4, __P5)) { 00578     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIFuncType5&lt;__RT, __C, __P1, __P2, __P3, __P4, __P5&gt;(f);00579 }00580 00581 00582 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C&gt;00583 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)()) { 00584     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType0&lt;__C&gt;(f);00585 }00586 00587 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1&gt;00588 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)(__P1)) { 00589     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType1&lt;__C, __P1&gt;(f);00590 }00591 00592 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2&gt;00593 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)(__P1, __P2)) { 00594     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType2&lt;__C, __P1, __P2&gt;(f);00595 }00596 00597 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3&gt;00598 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)(__P1, __P2, __P3)) { 00599     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType3&lt;__C, __P1, __P2, __P3&gt;(f);00600 }00601 00602 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4&gt;00603 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)(__P1, __P2, __P3, __P4)) { 00604     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType4&lt;__C, __P1, __P2, __P3, __P4&gt;(f);00605 }00606 00607 <font class="keyword">template</font>&lt;<font class="keyword">class</font> __C, <font class="keyword">class</font> __P1, <font class="keyword">class</font> __P2, <font class="keyword">class</font> __P3, <font class="keyword">class</font> __P4, <font class="keyword">class</font> __P5&gt;00608 <font class="keyword">inline</font> <a class="code" href="classRTTIMethodType.html">RTTIMethodType</a>* RTTIProcTypeOf(<font class="keywordtype">void</font> (__C::*f)(__P1, __P2, __P3, __P4, __P5)) { 00609     <font class="keywordflow">return</font> <font class="keyword">new</font> RTTIProcType5&lt;__C, __P1, __P2, __P3, __P4, __P5&gt;(f);00610 }00611 00612 <font class="preprocessor">#endif</font></pre></div><hr><address align="right"><small>Generated on Fri Apr 26 17:39:24 2002 for CppReflection by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -