Heim  >  Artikel  >  Backend-Entwicklung  >  C和C++的面向对象专题(8)——更为高级的预处理器PHP

C和C++的面向对象专题(8)——更为高级的预处理器PHP

WBOY
WBOYOriginal
2016-08-08 09:25:17794Durchsuche

本专栏文章列表

一、何为面向对象

二、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>#include <iostream></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> 1, <span>2</span>) return<span>0</span>;
}</code>

我们用如下指令生成C++代码:

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

好的,下面就和正常的项目编译一样了,你甚至可以将php的命令写入到makefile中,自动化生成

以上就介绍了C和C++的面向对象专题(8)——更为高级的预处理器PHP,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn