【发布时间】:2011-07-19 17:00:28
【问题描述】:
我有 2 个类,即 classA 和 classB。在 classA 中有一个在堆内存上动态声明的映射。 然而,在 classB 中,正在尝试使用迭代器访问 classA 映射值。 不幸的是,我得到了迭代器的错误 no match operator= 。 如果我将地图移动到 B 类,迭代器将正常工作。有人可以帮助我吗,这一直困扰着我一段时间。 提前致谢。
class classA{
public:
classA();
friend classB;
private:
map <int,int>* _themap;
};
classA::classA(){
_themap = new map<int,int>;
}
class classB{
private:
classA* object = new classA();
void accessthemap();
};
void classB::accessthemap(){
map<int,int>::iterator it;
it = object->_themap->begin();
it = object->_themap->find();
}
【问题讨论】:
-
让它
object->_themap.begin()。_themap不是指针。 -
@n.m.这真的应该是一个答案,给你投票就好了,如果 superface 有机会接受答案(并关闭问题),那将是一件好事。
-
首先,这段代码将如何编译?有很多错误,例如错误的类声明等
-
@cppcoder:这不是他要问的吗?
-
@Tomalak 他担心迭代器错误。而类本身有错误。我认为他可能已经监督了这一点。