C++primer
Hong方谬
这个作者很懒,什么都没留下…
展开
-
奇怪的报错解决方案: C2440 “默认参数”:无法从“int” 转换为“T”
如果 是如下代码就会报错:template <typename Tv> struct Vertex { //顶点对象(为简化起见,并未严格封装) Tv data; int inDegree, outDegree; VStatus status; //数据、出入度数、状态 int dTime, fTime; //时间标签 int parent; int priority; //在遍历树中的父节点、优先级数 Vertex(Tv const& d = (Tv)原创 2022-01-03 21:43:54 · 2502 阅读 · 0 评论 -
模板类重载输出操作符的正确形式
template <typename T>class matrix{public: //还需要再引入另一个模板类型T1 template <typename T1>//因为友元函数是类外函数,所以得另外定义一个函数模板 friend istream &operator >> (istream &, matrix<T1> &);//输入矩阵 template <typename T1> friend ostre原创 2021-12-27 00:38:21 · 217 阅读 · 0 评论 -
模板类的继承:基类和派生类的定义最好放在同一头文件中
模板类的继承:基类和派生类的定义最好放在同一头文件中。否则会出现各种报错,包括但不限于public派生类无法使用基类的public接口如下是没有将基类的定义包含进派生类的定义中:#include "../C2_Vector/Vector.h"template<typename T>class Stack :public Vector<T>{public://size()、empty()等接口,可以直接沿用 Stack(){} void push(T const&am原创 2021-12-19 12:30:14 · 422 阅读 · 0 评论 -
【接口声明与接口实现需文件分离】
【接口声明与接口实现需文件分离】定义一个ADT时,类型定义放在头文件中,类型接口的实现,一定要放在同名cpp文件中,否则就会报错。实现一定不能放在头文件中!!!!!欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮原创 2021-12-08 12:30:28 · 186 阅读 · 0 评论 -
C3861:“Node”:找不到标识符--------------C2065:“Node”:未声明的标识符
报错如下截图所示:报错源为如下函数:template<typename T>ostream& operator<<(ostream& out, const slist<T>& sl){ Node* tmp = sl.head; while (tmp != nullptr) { out << *tmp << " "; tmp = tmp->next; } out << endl;原创 2021-03-21 11:01:02 · 1209 阅读 · 0 评论