C++ 我可以使一个成员函数只能通过另一个类成员函数访问吗?

C++ 我可以使一个成员函数只能通过另一个类成员函数访问吗?,c++,methods,scope,friend,C++,Methods,Scope,Friend,据我所知,一个friend函数将允许该函数自由访问整个类。我是否可以通过仅允许其访问单个成员函数来限定此friend函数的范围 例如: class ResourceCache { Resource* Create(ResourceDesc) { ... return ResourceDesc.Create(); } } class ResourceDesc { ... Resource* Create(); } 在本例中,我希望

据我所知,一个friend函数将允许该函数自由访问整个类。我是否可以通过仅允许其访问单个成员函数来限定此friend函数的范围

例如:

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

class ResourceDesc {
    ...
    Resource* Create();
}
在本例中,我希望
ResourceCache::Create
只能访问
ResourceDesc::Create
,而不能访问所有
ResourceDesc


这可能吗?

C++没有给您这种细粒度的访问控制。不要太担心访问控制是否正确,这些都是您或您的合作者编写的代码,您担心会发生什么坏事?

C++不允许这样做


我的直接想法是,如果您想这样做,它至少可能表明您的
ResourceDesc
(也可能是
ResourceCache
)可能是在大的方面,可能做了不止一门真正应该做的课程。

只是在考虑组织和清洁。谢谢你的回答。老实说,我不知道这对组织和清洁有什么贡献。但是好吧!