Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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++ C++;过载操作员<&书信电报;使用指针向量的步骤_C++_Pointers_Operator Overloading - Fatal编程技术网

C++ C++;过载操作员<&书信电报;使用指针向量的步骤

C++ C++;过载操作员<&书信电报;使用指针向量的步骤,c++,pointers,operator-overloading,C++,Pointers,Operator Overloading,我有一个指针向量,我正在尝试重载ostream操作符以使打印更容易。但是,我似乎无法调用该函数。这是我的密码: std::vector<Set*> sets; for (int i = 0; i < sets.size(); i++) { std::cout << sets[i] << std::endl; } std::ostream& operator<<(std::ostream& out, const Se

我有一个指针向量,我正在尝试重载ostream操作符以使打印更容易。但是,我似乎无法调用该函数。这是我的密码:

std::vector<Set*> sets;

for (int i = 0; i < sets.size(); i++) {
    std::cout << sets[i] << std::endl;
}

std::ostream& operator<<(std::ostream& out, const Set* s) {
    //Print set code
}
std::向量集;
对于(int i=0;istd::cout重载解析是使用调用点编译器可见的声明来完成的。您需要移动
操作符重载解析是使用调用点编译器可见的声明来完成的。您需要移动
操作符什么是
?它是如何声明的?如图所示de
set
set*
的向量,因此从
set
打印第i个元素显然会打印一个地址。可能您需要数据结构/容器
set
中的元素,请使用
->
。set是集合指针的向量。它包含指针。指针是地址。当您std::cout它们时,这就是逻辑ally打印地址。这是你的代码要求的,这是你逻辑上得到的。你还希望它做什么?我的意图是为了set[i]要通过重载运算符data打印出来,如果我编写自己的函数,但如果我将该代码放在重载运算符中,则无法使其工作什么是
Set
?它是如何声明的?在所示的代码
Set
中,Set
Set*
的向量,因此打印
Set
中的第I个元素显然会打印一个地址。可能是您吗需要数据结构/容器
Set
中的元素,请使用
->
。Set是集合指针的向量。它包含指针。指针是地址。当您std::cout它们时,它会逻辑地打印地址。这是您的代码要求的,这是您逻辑上得到的。您还希望它做什么?我的意图是为了set[i]要通过重载运算符Data打印出来,如果我编写自己的函数,但如果我将代码放入重载运算符中,则无法使其工作,这是可行的。我在所有代码中都有一个函数存根,但由于某种原因它不起作用。当我将实际函数移到代码上方时,它起作用了。然后,当我将函数移回并复制aced的函数存根,它仍然工作。不知道我哪里出错了,但感谢你的帮助。这是有效的。我有一个函数存根在所有的代码,但它不工作的原因。当我把实际的函数移到代码上面它工作。然后,当我把函数移回来,并取代了函数存根,它仍然工作。不sure我哪里出错了,但谢谢你的帮助。