【新手问题】在一个类中如何调用另一个类的某方法内的HashMap集合

比如说我现在有一个类a,a中有一个方法b,b中有个HashMap集合c,那么我想在d类中使用这个c里面的key和value,应该怎么样实现呢?谢谢解答。

方法b的部分代码如下,集合c就是图中的last_Times

图片说明

3个回答

b 是一个方法,它里面定义的集合 C ,如果不设置为全局变量或者存储到其他的地方,是没有办法得到结果的。

qq_36974792
qq_370284518 回复毕小宝: 谢谢,茅塞顿开。
3 个月之前 回复
wojiushiwo945you
毕小宝 回复qq_370284518: 如果是 a 中定义的,那么是定义为a 类的成员变量吗?如果是的话,提供一个 getData 的方法,返回这个 HashMap 就可以在其他地方中使用了。
3 个月之前 回复
qq_36974792
qq_370284518 回复qq_370284518: 怎么解决呢
3 个月之前 回复
qq_36974792
qq_370284518 集合c不是在方法内定义的,是在类a中被定义的
3 个月之前 回复

思想大概这样:

#include <iostream>
#include <map>
using namespace std;

class A
{
public:
    A(){c.clear();b();}
    map<string,int> getMap(){return c;}
private:
    void b(){c["one"] = 1;}
private:
    map<string,int> c;
};


class D
{
public:
    void print(){
        A *a = new A();
        map<string,int> temp = a->getMap();

        map<string,int>::iterator itr = temp.begin();
        for(;itr != temp.end();itr++)
        {
             std::cout << itr->first << ' ' << itr->second;
        }


    }
};

int main()
{
    D *d = new D;
    d->print();
    return 0;
}

将b中的HashMap集合c 放到 b方法外,并设置成 static HashMap 在 d 类中通过类.静态方法的方式访问该 HashMap


stc1225
stc1225 回复阿里巴巴首席技术官: 怎么get
4 天之前 回复
weixin_42195284
阿里巴巴首席技术官 回复qq_370284518: 在别的地方把c get出来呀
3 个月之前 回复
qq_43765535
烂科人 回复qq_370284518: 我的意思就是设置一个全局变量
3 个月之前 回复
qq_36974792
qq_370284518 集合c不能放在外面,会导致方法b失效
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题