首頁  >  文章  >  後端開發  >  C和C++的物件導向專題(8)-更為高階的預處理器PHP

C和C++的物件導向專題(8)-更為高階的預處理器PHP

WBOY
WBOY原創
2016-08-08 09:25:17794瀏覽

本專欄文章列表

一、何為物件導向

二、C語言也能實現物件導向

三、C++中的不優雅特性

四、解決封裝,避免介面

、合理使用模板,避免程式碼冗餘

六、C++也能反射

七、單例模式解決靜態成員物件和全域物件的建構順序難題

八、更高級的預處理器PHP

八、更為高階的預處理器PHP

C++的巨集在某些情況下非常難用,例如將程式碼展開成為這樣:

Macro( A, B, C, D )

=>

func(“A” , A);
func(“B”, B);
func(“C”, C);
func(“D”, D);

test(A);
test(B);
test(C);
test(D);

這對巨集來說,太困難了,為了能實現複雜的巨集展開,我們希望用更高階的預處理器來實現這個功能。

我們在這裡使用PHP進行程式碼的預處理工作,將PHP程式碼當作C++的巨集使用。
當然,你也可以用python做程式碼產生工作,但由於php是內嵌式的,處理起來可能更方便一些,當然,其他語言配上模板也是可以的。

<code><span>/* main.php */</span>
<?php $return_m = <span>"return a + b;"</span> ?>

<span>#include <iostream></span><span>using</span><span>namespace</span><span>std</span>;

<span>int</span> func(<span>int</span> a, <span>int</span> b) {
    <?php echo $return_m; ?> 
}
<span>int</span> main() {
    <span>cout</span> << func(<span>1</span>, <span>2</span>) << endl;
    <span>return</span><span>0</span>;
}</code>

我們用以下指令產生C++程式碼:

<code>php main.php > main.cpp
</code>

好的,下面就和正常的專案編譯一樣了,你甚至可以將php的指令寫入到makefile中,自動化產生

以上就介紹了C和C++的物件導向專題(8)-更進階的預處理器PHP,包含了方面的內容,希望對PHP教學有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn