簡體   English   中英

我是否只能通過其他類成員函數訪問成員函數?

[英]Can I make a member function only accessible through another class member function?

據我所知,朋友函數將使函數可以自由訪問整個類。 我可以通過只讓它訪問單個成員函數來擴展此友元函數的范圍嗎?

例如:

class ResourceCache {
    Resource* Create(ResourceDesc) {
        ...
        return ResourceDesc.Create();
    }
}

class ResourceDesc {
    ...
    Resource* Create();
}

在這個例子中,我希望ResourceCache::Create只能訪問ResourceDesc::Create ,但不能訪問所有ResourceDesc

那可能嗎?

C ++沒有為您提供細粒度的訪問控制。 不要過於擔心訪問控制是否正確,這是你或你的合作者編寫的所有代碼,你害怕會發生什么壞事?

C ++不允許這樣做。

我的直接想法是,如果你想這樣做,它至少可能表明你的ResourceDesc (以及可能還有ResourceCache )可能在很大的一面,可能會做多個類真的應該。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM