C++ C++;过载操作员<&书信电报;使用指针向量的步骤
我有一个指针向量,我正在尝试重载ostream操作符以使打印更容易。但是,我似乎无法调用该函数。这是我的密码: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
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;i std::cout重载解析是使用调用点编译器可见的声明来完成的。您需要移动操作符重载解析是使用调用点编译器可见的声明来完成的。您需要移动操作符什么是集
?它是如何声明的?如图所示deset
是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我哪里出错了,但谢谢你的帮助。