如何使线程访问类的私有成员

时间:2017-02-12 10:21:18

标签: c++ multithreading c++11 private-members

我是c ++编程的新手。 我已经在其中创建了一个线程和一个类的对象。 这个课在另一个项目中。 现在如何在线程中访问此类的私有成员,因为我想设置它们。它们不是设置此成员的方法。 我们可以帮助我吗? 感谢。

1 个答案:

答案 0 :(得分:1)

嗯,你的问题有点模糊,但如果你想让非类成员代码能够访问私有类成员,你可以添加需要访问代码的函数作为friend的类。除了specific circumstances之外,这是高度推荐 - 因为它打破了类的封装并创建了更复杂和更复杂的依赖关系 - 你应该避免在没有充分理由的情况下这样做。

最有可能的情况是,您需要重新考虑为什么该成员是私有的 - 以及如何与您所谓的需要从课堂外访问它。也许它只需要一个" getter"保证不更改对象的方法(const方法)?也许您可以使用该类的另一种公共方法,而不是直接访问私有成员?想一想。