Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何仅使用特定类调用内部方法并访问这些类变量_C++_Methods - Fatal编程技术网

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();}

注释不用于扩展讨论;这段对话已经结束。