如何通过向量调用方法?

编程入门 行业动态 更新时间:2024-10-15 14:12:55
本文介绍了如何通过向量调用方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如何调用存储在向量中的对象的方法?以下代码失败...

ClassA * class_derived_a = new ClassDerivedA; ClassA * class_another_a = new ClassAnotherDerivedA; vector< ClassA *> test_vector; test_vector.push_back(class_derived_a); test_vector.push_back(class_another_a); for(vector< ClassA *> :: iterator it = test_vector.begin(); it!= test_vector.end(); it ++) it-> printOutput();

代码检索到以下错误:

test3.cpp:47:error:请求成员'printOutput'在'* it .__ gnu_cxx :: __ normal_iterator< _Iterator,_Container> :: operator-> _Iterator = ClassA **,_Container = std :: vector>',其中是非类类型'ClassA *'

问题似乎是 it-> printOutput(); 但是目前我不知道如何正确调用该方法,有谁知道? / p>

关于mikey

解决方案

向量中的东西是指针。您需要:

(* it) - > printOutput

它引用迭代器从向量中获取指针,然后使用 - >功能。如果向量包含对象而不是指针,那么您在问题中显示的语法将有效。在这种情况下,迭代器就像指向这些对象之一的指针。

How do I call a method of an object which is stored within a vector? The following code fails...

ClassA* class_derived_a = new ClassDerivedA; ClassA* class_another_a = new ClassAnotherDerivedA; vector<ClassA*> test_vector; test_vector.push_back(class_derived_a); test_vector.push_back(class_another_a); for (vector<ClassA*>::iterator it = test_vector.begin(); it != test_vector.end(); it++) it->printOutput();

The code retrieves the following error:

test3.cpp:47: error: request for member ‘printOutput’ in ‘* it.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-> with _Iterator = ClassA**, _Container = std::vector >’, which is of non-class type ‘ClassA*’

The problem seems to be it->printOutput(); but at the moment I don't know how to call the method properly, does anyone know?

regards mikey

解决方案

The things in the vector are pointers. You need:

(*it)->printOutput();

which dereferences the iterator to get the pointer from the vector, then uses -> on the pointer to call the function. The syntax you show in your question would work if the vector contained objects rather than pointers, in which case the iterator acts like a pointer to one of those objects.

更多推荐

如何通过向量调用方法?

本文发布于:2023-11-25 02:19:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627925.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:向量   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!