【发布时间】:2011-06-17 11:10:10
【问题描述】:
我想为成员函数签名声明类型定义。全局函数 typedef 如下所示:
typedef int (function_signature)(int, int);
typedef int (*function_pointer) (int, int);
但是对于成员函数,我不能做同样的事情:
typedef int (foo::memberf_signature)(int, int); // memberf_pointer is not a member of foo
typedef int (foo::*memberf_pointer)(int, int);
这听起来合乎逻辑,因为foo:: 是访问foo 类中成员的语法。
我怎样才能 typedef 只是签名?
【问题讨论】:
-
只是出于好奇,你为什么要这么做?
-
我很困惑,最后一个
typedef不是你想要的吗? -
这对我来说似乎不均匀。可以对在全局范围内声明的函数进行类型定义,但不能对方法进行类型定义。是的,我在区分签名和函数指针类型。
-
是的 C++ 语法应该允许 int (foo::&memberf_reference)(int, int )
标签: c++ typedef member-functions method-signature