已解决 类模板中分离时export产生的原因、作用和用法

来源:互联网 发布:车铣复合编程 编辑:程序博客网 时间:2024/06/09 21:33

查了N久的资料,很累,对于一个初学C++的忽然引入这个概念,纯粹就是一种灾难,


直接打击我学习的信心和动力。幸好浪费了两天,查出以下”半解“的知识。


初解:

背景:export目前支持的编译很少,据介绍只有一家编译器支持(虽然它是C++标准),VC6,7是不支持的。


原因:一般类模板的声明及定义都会放在一个头文件中,如果一个项目不大的情况下,是不关痛痒的。

           但是如果是一个大的项目,就出现麻烦了:因为模板的声明与定义都会在头文件中,很多这样的头文件都会包含进去,

            这样就会造成大量的资源紧张与浪费,增加系统开销,为了节约,当然C和C++的很多语句都是冲着”节约“而变化的,

           于是就产生了一个export,它的作用是做啥呢,就是把类模板的声明与定义分离开(就象普通类定义一样),声明在头文件中,

            定义在CPP文件中,这样,头文件包括就减轻了负担,同时根据需要才调用CPP中的类模板函数,这样就起到

           分流节约的目的,就相当于,一个大卡车不能通过山洞,但是如果把货物分成几份,分别通过山洞。


用法:在声明中保持不变,仅在定义的CPP文件中对模板函数成员前面加入export即可。

          这样这个CPP就可以单独编译,生成的对象文件可以用作使用该类模板的程序的一部分。