gpt4 book ai didi

c++在容器类中调用私有(private)函数

转载 作者:行者123 更新时间:2023-11-28 06:35:22 25 4
gpt4 key购买 nike

如果我有两个类:

class worker
{
Top *mp_parent;

worker(Top *parent) : mp_parent(parent) {};

int doSomeWork()
{
int i = mp_parent->privateFunction(); // This is the function I want to call
}
}

class Top
{
private:
worker m_Worker;

int privateFunction() {return 1;}

}

其中 Top 类包含 worker 类的一个实例。 worker实例化时,会传入一个指向父类的指针。稍后调用函数 doSomeWork() 需要从父级获取值,因此它调用 mp_parent->privateFunction()。

实现此目标的最佳方法是什么? - 如果可以避免的话,我真的不想让 privateFunction() 成为公共(public)函数,但它不能像现在这样工作,因为它是私有(private)的 :o

还有其他选择吗?

最佳答案

也许您可以使用“ friend ”关键字:

class worker
{
Top *mp_parent;

worker(Top *parent) : mp_parent(parent) {};

int doSomeWork()
{
int i = mp_parent->privateFunction(); // This is the function I want to call
}
}

class Top
{
friend class worker;
private:
worker m_Worker;

int privateFunction() {return 1;}

}

关于c++在容器类中调用私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com