C++错误:.“”标记前应为主表达式[重复]

knsnq2tg  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(306)

此问题在此处已有答案

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定义为其他东西而不是类吗?
命名空间成员的一个成员可以使用点操作符访问的情况是什么?

jdgnovmf

jdgnovmf1#

nsSignalManager::PiosSignalManagerRed::GetSignalStsOriginal();是正确的方式。
必须使用::来调用类的静态成员。

相关问题