我有公共成员函数调用私有成员函数.我想在私有成员函数定义可用的文件中限制私有成员函数的范围.在C中,我在函数名之前使用static来限制它在文件中的范围,我该如何在C++中实现它.
class Base
{
public:
void XYZ1(void);
void XYZ2(void);
private:
void fun(void);
};
void Base::XYZ1(void)
{
fun();
}
void Base::fun(void)
{
// do something;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果在其他.cpp文件中定义了成员函数XYZ2,则不应该允许它从中调用fun().基本上将fun()函数限制为文件范围.在a1.cpp
void Base::XYZ2(void)
{
fun();// this should result in some error saying fun() is not defined in its scope.
}
Run Code Online (Sandbox Code Playgroud)
我想在私有成员函数定义可用的文件中限制私有成员函数的范围.
甲private成员函数不能被其他类或功能来使用,除非他们被授予friend由类-ship.从这个意义上说,可以调用函数的范围已经是有限的.
话虽如此,该类的任何成员函数或已被friend类授予的任何类或函数都能够调用private成员函数.
防止在定义它的文件之外调用该函数的唯一方法是使其成为static.cpp文件中的非成员函数.或者将它放在.cpp文件中的匿名命名空间中.
| 归档时间: |
|
| 查看次数: |
676 次 |
| 最近记录: |