2017-02-12 83 views
0

我是新來的C++編程。 我已經創建了一個線程和一個類中的對象。 該課程在另一個項目中。 現在如何在線程中訪問這個類的私有成員,因爲我想設置它們。他們沒有設置這個成員的方法。 我們可以幫助我嗎? 謝謝。如何讓線程訪問一個類的私有成員

+0

「項目」是一堆源文件;一個「線程」是一個運行時實體。目前尚不清楚你試圖訪問和失敗的內容。另外,一個具體的例子(帶有一些代碼)會很有用。最後,只有類方法的實現才能訪問類的私有成員 - 除非使用['friend'ing機制](http://en.cppreference.com/w/cpp/language/friend)。 – einpoklum

回答

1

那麼,你的問題有點含糊,但如果你想讓非類成員代碼能夠訪問私有類成員,你可以添加需要訪問該代碼的函數作爲該類的friend。這是非常不推薦,除了在specific circumstances - 因爲它打破了你的班的封裝,並創建更復雜和微妙的依賴性 - 你應該避免這樣做,沒有一個很好的理由。

最有可能的是,您需要重新考慮爲什麼該成員是私人的 - 以及您應該如何在課堂外訪問它。也許它只是需要一個「getter」方法,保證不改變對象(一個const方法)?也許你可以使用另一種公開的方法而不是直接訪問私有成員?想想看。