此问题在此处已有答案:
c++ how to call static function of another class in namespace(1个答案)
5天前关闭。
我是C++的初学者,我正在做一些使用名称空间的练习。代码看起来像这样:
namespace nsSignalManager
{
enum eInputSignal
{
E_SIG_IDX = 0,
};
enum eInputSignalRed
{
E_SIGMGR_IDX = 0
};
class PiosSignalManagerRed{
public:
tStatusOriginal GetSignalStsOriginal();
};
} // namespace nsSignalManager
然后,我尝试从另一个文件访问GetSignalStsOriginal():
nsSignalManager::PiosSignalManagerRed.GetSignalStsOriginal(arg_eIdxISignal)
这是我得到的错误:
error: expected primary-expression before '.' token
使用点操作符访问函数GetSignalStsOriginal是很重要的。我可以在这里修改什么?我应该将PiosSignalManagerRed定义为其他东西而不是类吗?
命名空间成员的一个成员可以使用点操作符访问的情况是什么?
1条答案
按热度按时间jdgnovmf1#
nsSignalManager::PiosSignalManagerRed::GetSignalStsOriginal();
是正确的方式。必须使用
::
来调用类的静态成员。