首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

名字空间外定义的函数指针使用有关问题

2012-03-20 
名字空间外定义的函数指针使用问题 typedefvoidSig(int)SigUseSig(Sig)namespacens{classClassEx{public

名字空间外定义的函数指针使用问题

typedef   void   Sig(int);
Sig   UseSig(Sig);


namespace   ns
{
        class   ClassEx
        {
                public:
                        void   Example();
                private:
                        void   SigEx();        
          };

        void   ClassEx::SigEx(int   sig)
      {
                //   ...
        }

        void   ClassEx::Example()
        {
                UseSig(Sig_Ex);     //   出错地方
          }
}~namespace   ns

使用g++编译报错:
error:   argument   of   type   `void   (ns::ClassEx::)(int) '   does   not   match   `void   (*)(int) '

我尝试使用
UseSig((::Sig*)Sig_Ex);
还是报错。

请问怎么解决这个问题。
我以前曾经见过解决方法,现在忘了。

[解决办法]
SigEx是类的成员函数,带有this指针。
把它变成静态成员函数

热点排行