在矢量循环 C++ 中使用对象方法
use object method in vector loop c++
这是我的类:
class A
{
public:
int getVal(){return m_val;};
private:
int m_val = 1;
}
class B
{
public:
void print();
private:
std::vector<A*> m_vA;
}
现在在印刷中,我有
void B::print()
{
std::vector<A>::iterator it;
for(auto it = m_vA.begin(); it != m_vA.end(); it++) {
cout << *it.getVal() << endl;
}
}
我得到了这个错误:
error: no member named 'getVal' in 'std::__1::__wrap_iter<A *const *>'
我不明白为什么
感谢您的帮助
有各种各样的问题。首先,您有一个运算符优先级问题。有问题的表达式读作如下:
*(it.getVal())
您可以使用任一
it->getVal()
或
(*it).getVal()
接下来,你的向量是 std::vector<A*>
类型,但你的迭代器是std::vector<A>::iterator
。这是行不通的。我的 anwer 取决于正在std::vector<A>
的向量。如果是std::vector<A*>
,那么您需要额外的取消引用级别:
(*it)->getVal()
相关文章:
- 使用std::函数映射对象方法
- 正在调用shared_ptr对象方法
- 检查哪个对象调用了另一个对象的对象方法
- 如何在C++中循环访问未知对象方法?
- c++ 替换调用对象方法的宏函数
- 我能否通过将函数实现为类对象方法来避免使用互斥锁
- 我可以制作一个对象方法,如果单独调用,它将自行修改,但如果在复制初始化期间调用,则会返回一个新对象?
- 如何让两个不同的对象方法相互用作参数
- 在创建 c++ 期间调用对象方法
- 扩展中的日期时间对象方法C++问题
- 将对象方法从向量应用于C 的第二个向量中的对象
- 将 C++/CLI 对象指针传递给本机对象方法
- 多态性的面向对象方法
- 将对象方法传递到变量
- C :使用Main中定义的对象方法的函数
- 有关使用矢量迭代器访问对象方法的问题
- 定义可以执行对象方法和独立函数的函数时出现问题
- 调用列表中子对象方法的最佳方法
- main.cpp:(.text+0x8f):对[对象方法]的未定义引用
- cpp 从需要超类对象的函数访问子类对象方法