C++ 我可以使一个成员函数只能通过另一个类成员函数访问吗?
据我所知,一个friend函数将允许该函数自由访问整个类。我是否可以通过仅允许其访问单个成员函数来限定此friend函数的范围 例如:C++ 我可以使一个成员函数只能通过另一个类成员函数访问吗?,c++,methods,scope,friend,C++,Methods,Scope,Friend,据我所知,一个friend函数将允许该函数自由访问整个类。我是否可以通过仅允许其访问单个成员函数来限定此friend函数的范围 例如: class ResourceCache { Resource* Create(ResourceDesc) { ... return ResourceDesc.Create(); } } class ResourceDesc { ... Resource* Create(); } 在本例中,我希望
class ResourceCache {
Resource* Create(ResourceDesc) {
...
return ResourceDesc.Create();
}
}
class ResourceDesc {
...
Resource* Create();
}
在本例中,我希望ResourceCache::Create
只能访问ResourceDesc::Create
,而不能访问所有ResourceDesc
这可能吗?C++没有给您这种细粒度的访问控制。不要太担心访问控制是否正确,这些都是您或您的合作者编写的代码,您担心会发生什么坏事?C++不允许这样做
我的直接想法是,如果您想这样做,它至少可能表明您的
ResourceDesc
(也可能是ResourceCache
)可能是在大的方面,可能做了不止一门真正应该做的课程。只是在考虑组织和清洁。谢谢你的回答。老实说,我不知道这对组织和清洁有什么贡献。但是好吧!