背景
我正在从这门课程中自学 C++ 。我正在尝试使用友元函数(作业 4.2)重载类中的运算符。
编辑
链接的问题没有回答我的问题。该问题的公认解决方案提供了一种在 header + cpp 文件中实现模板的方法(并非全部在同一个文件中)。
事实上,我已经咨询了这个问题,以部分地提出我的情况。
我的尝试
使用方法 2,我几乎可以让我的代码工作(请参阅神秘的错误消息)。事实证明我缺少一个<>. (解决方案手册)。
我试过谷歌搜索,但没有其他人有这种情况
同时。
我的理由
不应使用类公共函数进行运算符重载,因为调用该函数的对象将被隐式传递,占用一个函数参数。让重载运算符对称(在用法和定义上)是更好的代码风格。
的用法friend是由讲义建议的。
题
<>需要?谢谢你。
代码
堆栈.h
#include <iostream>
#include <vector>
using std::cout;
using std::vector;
template <typename T>
class Stack;
template <typename T>
Stack<T> operator+(Stack<T> a, Stack<T> b);
template <typename T>
class Stack { // use default constructors and destructors …Run Code Online (Sandbox Code Playgroud)