C++ 模板类出现重复定义问题

1.模板类必须将源文件和头文件在“同一文件中”(详细的自己查),解决方式有两种,可以直接在头文件中实现,也可以将实现文件包含进头文件#incklude “XXXXX.cpp”;

     若选择包含的方式,则源文件不可以用#pragma once,#pragma once只可以保证头文件的不重复包含。


2.实现的源文件中包含多个类,其中有的是模板类有的是非模板类,则在包含是会出现重复定义非模板类的错误。

  1中已经说明了, 模板类的源文件头文件是写在一个文件中或者包含在一个文件中的,那么其他文件中包含了该头文件便也会包含源文件,模板类是被编译器允许的,而普通的

非模板类是不被允许的,所以谁出现定义位置和当前引用位置两次出现,在生成目标文件时,会造成重复定义现象。



以上为工作中所遇到的问题和解决办法,写在此处仅以备忘,如有不对纯属扯淡! U can U up!


2015/11/04  melo


你可能感兴趣的:(C++ 模板类出现重复定义问题)