查了N久的资料,很累,对于一个初学C++的忽然引入这个概念,纯粹就是一种灾难,
直接打击我学习的信心和动力。幸好浪费了两天,查出以下”半解“的知识。
初解:
背景:export目前支持的编译很少,据介绍只有一家编译器支持(虽然它是C++标准),VC6,7是不支持的。
原因:一般类模板的声明及定义都会放在一个头文件中,如果一个项目不大的情况下,是不关痛痒的。
但是如果是一个大的项目,就出现麻烦了:因为模板的声明与定义都会在头文件中,很多这样的头文件都会包含进去,
这样就会造成大量的资源紧张与浪费,增加系统开销,为了节约,当然C和C++的很多语句都是冲着”节约“而变化的,
于是就产生了一个export,它的作用是做啥呢,就是把类模板的声明与定义分离开(就象普通类定义一样),声明在头文件中,
定义在CPP文件中,这样,头文件包括就减轻了负担,同时根据需要才调用CPP中的类模板函数,这样就起到
分流节约的目的,就相当于,一个大卡车不能通过山洞,但是如果把货物分成几份,分别通过山洞。
用法:在声明中保持不变,仅在定义的CPP文件中对模板函数成员前面加入export即可。
这样这个CPP就可以单独编译,生成的对象文件可以用作使用该类模板的程序的一部分。