C++ 如何仅使用特定类调用内部方法并访问这些类变量
我正在组合一个递归方法,并且需要能够只调用一个类类型的一个方法,而且还可以在调用的方法中访问该类的变量。我该怎么做?我不知道该在网上搜索什么或者它叫什么。我知道这里的人在我的C++ 如何仅使用特定类调用内部方法并访问这些类变量,c++,methods,C++,Methods,我正在组合一个递归方法,并且需要能够只调用一个类类型的一个方法,而且还可以在调用的方法中访问该类的变量。我该怎么做?我不知道该在网上搜索什么或者它叫什么。我知道这里的人在我的OurMap上没有关于内部工作的信息,但我们可以假设它是std::map。我们从toJson开始,一旦我们准备将内部数据转换为其他格式,并递归地从数据结构中获取数据。见下面的评论 class OurNode: public OurIF { public: void OurNode::toJson() {
OurMap
上没有关于内部工作的信息,但我们可以假设它是std::map
。我们从toJson
开始,一旦我们准备将内部数据转换为其他格式,并递归地从数据结构中获取数据。见下面的评论
class OurNode: public OurIF
{
public:
void OurNode::toJson()
{
GenericValue doc(Rapidjson::kObjectType);
this.buildTree(doc);
}
void OurNode::buildTree(GenericValue &doc)
{
OurMetaType t == m_value.type();
if(t == OurMapMeta)
m_value.getMap().buildTree(doc);
else if(t == OurListMeta)
m_value.getList().buildTree(doc);
else if(t == string)
doc.AddMember(m_name, m_value);
}
//OurMap is a map of a string, OurValue combination
void OurMap::buildTree(GenericValue &doc)
{
OurMap m = this.OurMap.getValue(); //how would I access a calling class data if not this? Technically, this is OurNode, not OurMap. How do I get the OurMap data?
}
private:
string m_name;
OurValue m_value; //could be int, double, string, OurMap, OurList, etc
}
这就是@AndyG在移动至聊天室的评论中给出的答案:
我认为您想说的是,OurMap是OurNode::buildTree的调用者,您希望访问该调用者的成员。C++没有询问呼叫者的方式;您需要将调用者传递到函数void buildTree(OurMap&_mapInstance,GenericValue&doc){u mapInstance.getValue();}注释不用于扩展讨论;这段对话已经结束。