Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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++ 模板中重载的ostream运算符_C++_Templates_Std - Fatal编程技术网

C++ 模板中重载的ostream运算符

C++ 模板中重载的ostream运算符,c++,templates,std,C++,Templates,Std,我对重载ostream操作符感到困惑,这是因为您在sparseArray2D上重载(而不是重新加载),但这不是matrX的含义: sparseArray2D<int> *matrX = new sparseArray2D<int>(10, 9, 5); // ^^ cout << matrX; 注意:指针不是对象(C++),为什么不sparseArray2D matrX(10,9,5)@Neil Kirk,你说得对!谢谢是的,没

我对重载ostream操作符感到困惑,这是因为您在
sparseArray2D
重载(而不是重新加载),但这不是
matrX
的含义:

sparseArray2D<int> *matrX = new sparseArray2D<int>(10, 9, 5);
//                ^^
cout << matrX;

注意:指针不是对象(C++),为什么不
sparseArray2D matrX(10,9,5)@Neil Kirk,你说得对!谢谢是的,没错。现在我明白它是如何工作的了。非常感谢。最有可能的是,OP根本不需要指针。仍然存在
friend
声明与定义不匹配的问题。不完全理解您的意思mean@Archarious,创建一个简单的对象,根本不需要指针(Neil Kirk在另一篇评论中给出了另一种选择)。您对
operator@chris好的,我明白了!感谢您的解释和文章!
#include "sparseArray2D.h"

int _tmain(int argc, _TCHAR* argv[])
{
    //...
    sparseArray2D<int> *matrX = new sparseArray2D<int>(10, 9, 5);
    cout << matrX;
    //...
}
sparseArray2D<int> *matrX = new sparseArray2D<int>(10, 9, 5);
//                ^^
cout << matrX;
cout << *matrX;