<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cnPhil &#187; Free Pascal</title>
	<atom:link href="http://www.cnphil.com/archives/tag/free-pascal/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cnphil.com</link>
	<description>In Pursuit of Excellence</description>
	<lastBuildDate>Fri, 09 Jul 2010 06:17:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pascal 中的操作符定义与重载操作符定义</title>
		<link>http://www.cnphil.com/archives/53</link>
		<comments>http://www.cnphil.com/archives/53#comments</comments>
		<pubDate>Sun, 02 Nov 2008 15:32:16 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Informatics]]></category>
		<category><![CDATA[Free Pascal]]></category>
		<category><![CDATA[Pascal]]></category>

		<guid isPermaLink="false">http://www.cnphil.com/?p=53</guid>
		<description><![CDATA[用 Vista 的感觉很好。我一直没用过 Vista ，现在 Vista 和 Windows 7 一起用，感觉真不错哈！ 看了柯南兄的Blog，感觉他的操作符描述很模糊，在这里我想讲一遍。 不多废话了： 1 program cnPhil_operator; 2 3 operator **(a,b:longint)p:longint;//定义双longint**操作 4 var q:real; 5 begin 6 q:=exp(b*ln(a)); 7 p:=trunc(q); 8 end; 9 10 operator **(a,b:string)p:longint;//定义双string**操作，注意声明同名运算符时，运算量类型一定不能一样，比如有了一个双integer的-操作，你不能再次声明双integer的-操作，但是你可以声明双string的-操作，否则会重载！ 11 var 12 i,j:longint; 13 ok:integer; 14 begin 15 val(a,i,ok); 16 val(b,j,ok); 17 p:=trunc(i**j);//调用以前声明的双longint的**操作，其实运算符声明也可以递归实现！但此处不是递归，而是利用了运算符可以因不同运算量类型而重复定义的特性。 18 end; 19 20 21 22 23 [...]]]></description>
			<content:encoded><![CDATA[<p>用 Vista 的感觉很好。我一直没用过 Vista ，现在 Vista 和 Windows 7 一起用，感觉真不错哈！</p>
<p>看了柯南兄的Blog，感觉他的操作符描述很模糊，在这里我想讲一遍。</p>
<p>不多废话了：</p>
<div>
<pre class="hl"><span class="line">    1 </span><span class="kwa">program</span> cnPhil_operator<span class="sym">;</span>
<a name="l_2"></a><span class="line">    2 </span>
<a name="l_3"></a><span class="line">    3 </span>operator <span class="sym">**(</span>a<span class="sym">,</span>b<span class="sym">:</span><span class="kwb">longint</span><span class="sym">)</span>p<span class="sym">:</span><span class="kwb">longint</span><span class="sym">;</span><span class="slc">//定义双longint**操作</span>
<a name="l_4"></a><span class="line">    4 </span><span class="kwa">var</span> q<span class="sym">:</span><span class="kwb">real</span><span class="sym">;</span>
<a name="l_5"></a><span class="line">    5 </span><span class="kwa">begin</span>
<a name="l_6"></a><span class="line">    6 </span>     q<span class="sym">:=</span><span class="kwd">exp</span><span class="sym">(</span>b<span class="sym">*</span><span class="kwd">ln</span><span class="sym">(</span>a<span class="sym">));</span>
<a name="l_7"></a><span class="line">    7 </span>     p<span class="sym">:=</span><span class="kwd">trunc</span><span class="sym">(</span>q<span class="sym">);</span>
<a name="l_8"></a><span class="line">    8 </span><span class="kwa">end</span><span class="sym">;</span>
<a name="l_9"></a><span class="line">    9 </span>
<a name="l_10"></a><span class="line">   10 </span>operator <span class="sym">**(</span>a<span class="sym">,</span>b<span class="sym">:</span><span class="kwa">string</span><span class="sym">)</span>p<span class="sym">:</span><span class="kwb">longint</span><span class="sym">;</span><span class="slc">//定义双string**操作，注意声明同名运算符时，运算量类型一定不能一样，比如有了一个双integer的-操作，你不能再次声明双integer的-操作，但是你可以声明双string的-操作，否则会重载！</span>
<a name="l_11"></a><span class="line">   11 </span>  <span class="kwa">var</span>
<a name="l_12"></a><span class="line">   12 </span>    i<span class="sym">,</span>j<span class="sym">:</span><span class="kwb">longint</span><span class="sym">;</span>
<a name="l_13"></a><span class="line">   13 </span>    ok<span class="sym">:</span><span class="kwb">integer</span><span class="sym">;</span>
<a name="l_14"></a><span class="line">   14 </span>  <span class="kwa">begin</span>
<a name="l_15"></a><span class="line">   15 </span>       <span class="kwd">val</span><span class="sym">(</span>a<span class="sym">,</span>i<span class="sym">,</span>ok<span class="sym">);</span>
<a name="l_16"></a><span class="line">   16 </span>       <span class="kwd">val</span><span class="sym">(</span>b<span class="sym">,</span>j<span class="sym">,</span>ok<span class="sym">);</span>
<a name="l_17"></a><span class="line">   17 </span>       p<span class="sym">:=</span><span class="kwd">trunc</span><span class="sym">(</span>i<span class="sym">**</span>j<span class="sym">);</span><span class="slc">//调用以前声明的双longint的**操作，其实运算符声明也可以递归实现！但此处不是递归，而是利用了运算符可以因不同运算量类型而重复定义的特性。</span>
<a name="l_18"></a><span class="line">   18 </span>  <span class="kwa">end</span><span class="sym">;</span>
<a name="l_19"></a><span class="line">   19 </span>
<a name="l_20"></a><span class="line">   20 </span>
<a name="l_21"></a><span class="line">   21 </span>
<a name="l_22"></a><span class="line">   22 </span>
<a name="l_23"></a><span class="line">   23 </span><span class="kwa">begin</span>
<a name="l_24"></a><span class="line">   24 </span>        <span class="kwd">writeln</span><span class="sym">(</span><span class="str">'2^3='</span><span class="sym">,</span><span class="num">2</span><span class="sym">**</span><span class="num">3</span><span class="sym">);</span>
<a name="l_25"></a><span class="line">   25 </span>        <span class="kwd">writeln</span><span class="sym">(</span><span class="str">''</span><span class="str">'2'</span><span class="str">'^'</span><span class="str">'3'</span><span class="str">'='</span><span class="sym">,</span><span class="str">'2'</span><span class="sym">**</span><span class="str">'3'</span><span class="sym">);</span>
<a name="l_26"></a><span class="line">   26 </span><span class="kwa">end</span><span class="sym">.</span></pre>
<pre class="hl">另外贴一张我的本本跑 Vista 的图，现在我的本本可是四系统啊（XP,Vista,Win7,Ubuntu），很强吧？</pre>
<pre class="hl">
<table style="width: auto;" border="0">
<tbody>
<tr>
<td><a href="http://picasaweb.google.com/lh/photo/cxEY7_mhSUH5O7Fkja_-pA"><img src="http://lh5.ggpht.com/_7HlAPY3wLzo/SQ3HyGl_kUI/AAAAAAAAAHo/_xcrm4eCkHY/s800/SrSv01.jpg" alt="" /></a></td>
</tr>
<tr>
<td style="font-family:arial,sans-serif; font-size:11px; text-align:right">发件人 <a href="http://picasaweb.google.com/PicnPhil/CnPhilPhoto">cnPhil/Photo</a></td>
</tr>
</tbody>
</table>
</pre>
</div>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53&amp;title=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89&amp;annotation=%E7%94%A8%20Vista%20%E7%9A%84%E6%84%9F%E8%A7%89%E5%BE%88%E5%A5%BD%E3%80%82%E6%88%91%E4%B8%80%E7%9B%B4%E6%B2%A1%E7%94%A8%E8%BF%87%20Vista%20%EF%BC%8C%E7%8E%B0%E5%9C%A8%20Vista%20%E5%92%8C%20Windows%207%20%E4%B8%80%E8%B5%B7%E7%94%A8%EF%BC%8C%E6%84%9F%E8%A7%89%E7%9C%9F%E4%B8%8D%E9%94%99%E5%93%88%EF%BC%81%0D%0A%0D%0A%E7%9C%8B%E4%BA%86%E6%9F%AF%E5%8D%97%E5%85%84%E7%9A%84Blog%EF%BC%8C%E6%84%9F%E8%A7%89%E4%BB%96%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E6%8F%8F%E8%BF%B0%E5%BE%88%E6%A8%A1%E7%B3%8A%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E6%83%B3%E8%AE%B2%E4%B8%80%E9%81%8D%E3%80%82%0D%0A%0D%0A%E4%B8%8D%E5%A4%9A%E5%BA%9F%E8%AF%9D%E4%BA%86%EF%BC%9A%0D%0A%0D%0A%20%20%20%201%20program" title="Google Bookmarks"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53&amp;title=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89&amp;notes=%E7%94%A8%20Vista%20%E7%9A%84%E6%84%9F%E8%A7%89%E5%BE%88%E5%A5%BD%E3%80%82%E6%88%91%E4%B8%80%E7%9B%B4%E6%B2%A1%E7%94%A8%E8%BF%87%20Vista%20%EF%BC%8C%E7%8E%B0%E5%9C%A8%20Vista%20%E5%92%8C%20Windows%207%20%E4%B8%80%E8%B5%B7%E7%94%A8%EF%BC%8C%E6%84%9F%E8%A7%89%E7%9C%9F%E4%B8%8D%E9%94%99%E5%93%88%EF%BC%81%0D%0A%0D%0A%E7%9C%8B%E4%BA%86%E6%9F%AF%E5%8D%97%E5%85%84%E7%9A%84Blog%EF%BC%8C%E6%84%9F%E8%A7%89%E4%BB%96%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E6%8F%8F%E8%BF%B0%E5%BE%88%E6%A8%A1%E7%B3%8A%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E6%83%B3%E8%AE%B2%E4%B8%80%E9%81%8D%E3%80%82%0D%0A%0D%0A%E4%B8%8D%E5%A4%9A%E5%BA%9F%E8%AF%9D%E4%BA%86%EF%BC%9A%0D%0A%0D%0A%20%20%20%201%20program" title="del.icio.us"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53&amp;t=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89" title="Facebook"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89&amp;link=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53" title="FriendFeed"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%20-%20http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53" title="Twitter"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F53&title=Pascal%20%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%87%8D%E8%BD%BD%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%AE%9A%E4%B9%89" title="豆瓣"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>


<br/><br/><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>No Related Posts</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.cnphil.com/archives/53/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
