2017-02-12 84 views
0

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

+0

“项目”是一堆源文件;一个“线程”是一个运行时实体。目前尚不清楚你试图访问和失败的内容。另外,一个具体的例子(带有一些代码)会很有用。最后,只有类方法的实现才能访问类的私有成员 - 除非使用['friend'ing机制](http://en.cppreference.com/w/cpp/language/friend)。 – einpoklum

回答

1

那么,你的问题有点含糊,但如果你想让非类成员代码能够访问私有类成员,你可以添加需要访问该代码的函数作为该类的friend。这是非常不推荐,除了在specific circumstances - 因为它打破了你的班的封装,并创建更复杂和微妙的依赖性 - 你应该避免这样做,没有一个很好的理由。

最有可能的是,您需要重新考虑为什么该成员是私人的 - 以及您应该如何在课堂外访问它。也许它只是需要一个“getter”方法,保证不改变对象(一个const方法)?也许你可以使用另一种公开的方法而不是直接访问私有成员?想想看。