ホームページ  >  記事  >  バックエンド開発  >  C および C++ のオブジェクト指向のトピック (8) - より高度なプリプロセッサ PHP

C および C++ のオブジェクト指向のトピック (8) - より高度なプリプロセッサ PHP

WBOY
WBOYオリジナル
2016-08-08 09:25:17794ブラウズ

このコラムの記事一覧

1. オブジェクト指向とは

2. C言語でもオブジェクト指向を実装できる

3. カプセル化を解決し、インターフェイスを回避する

5.コードの冗長性を避けるためにテンプレートを合理的に使用する

6. C++ にも反映できます

7. シングルトン モードは、静的メンバー オブジェクトとグローバル オブジェクトの構築順序の問題を解決します

8. より高度なプリプロセッサ PHP

8. 詳細 高度なプリプロセッサ PHP

C++ マクロは、場合によっては非常に使いにくい場合があります。たとえば、コードは次のように展開されます:

Macro(A, B, C, D)

=>

func(“A ", A) ;

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


テスト(A); テスト(B); テスト(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>

OK、以下は通常のプロジェクトのコンパイルと同じです。メイクファイルに php コマンドを記述して

を自動的に生成することもできます。
上記では、C および C++ (8) のより高度なプリプロセッサである PHP のオブジェクト指向のトピックを、その側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。