Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正确的模板声明和实现 我试图声明C++中实现二维矩阵的模板声明。我以前从未使用过模板,我被要求使用它们。我只需要在声明的正确语法方面得到帮助,因为friend函数和模板的重载是令人困惑的,并且是不同的问题,至少与我习惯的情况相比是如此_C++_Class_Templates - Fatal编程技术网

正确的模板声明和实现 我试图声明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());
...