正确的模板声明和实现 我试图声明C++中实现二维矩阵的模板声明。我以前从未使用过模板,我被要求使用它们。我只需要在声明的正确语法方面得到帮助,因为friend函数和模板的重载是令人困惑的,并且是不同的问题,至少与我习惯的情况相比是如此
像往常一样,内部文档是无用的。我最专注于找出重载运算符的错误,因为老实说,它至少让我困惑了一整天正确的模板声明和实现 我试图声明C++中实现二维矩阵的模板声明。我以前从未使用过模板,我被要求使用它们。我只需要在声明的正确语法方面得到帮助,因为friend函数和模板的重载是令人困惑的,并且是不同的问题,至少与我习惯的情况相比是如此,c++,class,templates,C++,Class,Templates,像往常一样,内部文档是无用的。我最专注于找出重载运算符的错误,因为老实说,它至少让我困惑了一整天 class Matrix { public: Matrix(int sizeX, int sizeY, T initValue = T()); T &operator()(int x, int y); template <class Type> friend ostream &operator<<(
class Matrix
{
public:
Matrix(int sizeX, int sizeY, T initValue = T());
T &operator()(int x, int y);
template <class Type>
friend ostream &operator<<(ostream &out, const Matrix<type> &m);
template <class Mtype>
friend Matrix<Mtype> operator+(const Matrix<MType> &m1, const Matrix<Mtype>& m2);
private:
vector< vector<T> > data;
int dx, dy;
}
类矩阵
{
公众:
矩阵(int-sizeX,int-sizeY,T initValue=T());
T&运算符()(int x,int y);
模板
friend ostream&operator您缺少模板类型T
template <class T>
class Matrix
{
public:
Matrix(int sizeX, int sizeY, T initValue = T());
...
模板
类矩阵
{
公众:
矩阵(int-sizeX,int-sizeY,T initValue=T());
...
请注意,模板代码的实现应该在头文件中,而不是在cpp中。问题是,您一直在进行猜测,而您的代码现在有许多明显的问题(以及您遗漏的问题)任何试图帮助你的人都不能给出一个完整的解决方案——每次一个问题被解决,你会发现另一个问题。这种事情在问答格式上不太好。你最好在C++上得到一个好的文本,阅读相关的部分(包括在模板上)。,然后从头开始练习。谢谢,我在class关键字之前添加了缺少的“模板”
template <class T>
class Matrix
{
public:
Matrix(int sizeX, int sizeY, T initValue = T());
...