类模板
Hong方谬
这个作者很懒,什么都没留下…
展开
-
int不是非类型模板参数的有效类型
出错代码如下:template<int count>inline size_t StringHashFamily<int>::hash(const string& x, int which)const{ const int multipliers = MULTIPLERS[which]; size_t hashval = 0; for (auto& ch : x) { hashval = multipliers * hashval + ch; } r原创 2021-04-18 20:56:51 · 399 阅读 · 0 评论 -
链接器工具错误 LNK2005———— 符号 被定义了多次。
出错函数为void BinaryTree_test(),如下:(1)该函数在BInarySearchTree.h中声明如下:void BinaryTree_test();(2)该函数在BInarySearchTree.cpp中定义,如下:void BinaryTree_test(){ BinarySearchTree<int> tree; tree.insert(5); tree.insert(6); tree.insert(4); tree.insert(8); tre原创 2021-04-05 22:47:46 · 890 阅读 · 0 评论 -
类、类模板的protected成员(受保护)继承规则
如下,为基类模板和派生类模板的继承层次://基类模板template<typename T>class D0 {protected: int testi; double testdouble;};//派生类模板template<typename T>class D1 :public D0 {public: };编译时报错如下:原因是派生类只能继承类,而不能继承类模板,解决措施就是D0后添加模板类型参数,如下://基类模板template<t原创 2021-03-25 09:06:54 · 1025 阅读 · 0 评论 -
类模板与类模板成员函数分离定义的注意事项
(1)源文件一定要有宏包含:#ifndef _VECTOR_CPP_#define _VECTOR_CPP_(2)头文件尾部一定要有宏包含:#include "Vector.cpp"(3)在源文件中定义类模板的构造函数和赋值操作符时,一定要注意,正确形式如下:```cpp//Vector.cpp#ifndef _VECTOR_CPP_#define _VECTOR_CPP_#include "Vector.h"//move constructor and move assig原创 2021-03-22 18:31:58 · 210 阅读 · 0 评论