【发布时间】:2012-10-08 02:12:26
【问题描述】:
四处搜索,找不到任何关于我的问题的建议。我正在尝试为具有包含指向抽象基类的指针的私有变量的类创建一个复制构造函数。
#include "BaseClass.hh"
ClassA::ClassA()
{ }
/* Copy construct a ClassA object */
ClassA::ClassA(const ClassA& obj)
{
std::map<std::string, BaseClass*>::const_iterator it;
//ClassA copy = obj;
for(it = obj.ind.begin(); it != obj.ind.end(); it++)
{
copy.ind[it->first]=(it->second);
}
}
//in .hh file
private:
std::map<std::string, BaseClass*> ind;
我什至接近吗?如果没有,我该如何解决这个问题?
【问题讨论】:
-
你的意思是 ++it 以及 'for' 子句中的 it++ 吗?
-
BaseClass 和 ClassA 有什么关系? ClassA 是否公开继承 BaseClass ?
-
我认为您首先要解释的是:为什么需要自定义复制构造函数?提供给你的那个做了什么你不希望它做的?还有其他人注意到:ClassA 是否继承自 BaseClass?还是另一种关系?
-
它不继承BaseClass,它只是作为标题包含进来。编辑代码以包含它。
标签: c++ c++11 copy-constructor abstract-base-class