c++模板类/模板函数的声明与定义应该放在头文件里
2012-06-29 16:52
471 查看
如果函数模板按照普通的函数声明放在头文件的,定义放在。cpp文件,会出现错误:
函数模板是编译时自动生 成各种类型的函数实例,如同内联函数,编译时其实现必须可见,一般其实现应该包含在头文件中。
模板函数的声明定义要放在头文件中,不可以分开放在.h和.cpp中。
同样,在一个类中将一个成员函数定义为函数模板时也是要遵从这个规则:实现要放在头文件里。
模板函数声明、定义、引用有什么要注意的问题么?? -- mylib.h -- template <class T> T max_v(T v1, T v2); -- mylib.cpp -- #include "mylib.h " template <class T> T max_v(T v1, T v2) { return (v1 > v2 ? v1 : v2); } -- mylibtest.cpp -- #include "mylib.h " int main() { std::cout < < max_v(2, 4) < < std::endl; system( "pause "); return 0; } 使用g++编译器,提示“undefined reference to `int max_v <int> (int, int) '”
函数模板是编译时自动生 成各种类型的函数实例,如同内联函数,编译时其实现必须可见,一般其实现应该包含在头文件中。
模板函数的声明定义要放在头文件中,不可以分开放在.h和.cpp中。
同样,在一个类中将一个成员函数定义为函数模板时也是要遵从这个规则:实现要放在头文件里。
相关文章推荐
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里,不要分开来写类中函数的声明与定义
- C++ 在.h文件中声明,在.cpp文件中定义 模板函数和模板类
- c++ 模板类 声明和定义都放在.h文件的原因
- c++ 模板类 声明和定义都放在.h文件的原因
- c++ 模板类 声明和定义都放在.h文件的原因
- 模板函数,模板类的声明和定义都放在.h文件
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板函数的声明和定义为何不能分开放在两个文件中?
- 学习笔记之C++为什么将函数声明或者类的定义放在.h文件中,而将其实现放在原文件中
- 模板类和模板函数的声明和定义分开文件写的方法
- c++ 自己创建的namespace,声明在h文件中,定义在cpp文件中,这种程序结构应该是合理的吧,欢迎不同见解的朋友来讨论。
- 模板类成员函数的定义和声明为什么要放在一个文件中
- C++中模板的声明和实现应该放在同一个文件中
- C++中模板定义与声明为什么放在同一个文件中