【发布时间】:2016-02-19 06:32:06
【问题描述】:
我正在阅读一个 C++ 项目的代码,它包含以下形式的一些代码:
namespace ns {
class A {};
class B {};
}
struct C {
typedef ns::A* ns::B::* type;
};
有人可以解释typedef 行的含义吗? type 似乎是某种指向 ns::B 成员的指针,它指向 ns::A,但我不确定。
真实代码中的A和B类不为空,但我认为这里不相关。这是live example。
【问题讨论】:
-
strange stuff 确实! @JoachimPileborg
-
看起来像指向成员函数的指针,但缺少参数。也许相当于
typedef ns::A* ns::B::* () type; -
@xovano 没问题。另一个活生生的例子只是更好地改善了你的问题。你已经对这种令人困惑的语法提出了一个很好的问题(现在不太容易),除非有人找到了合适的重复。恭喜。不过,您的问题标题可能会有所改进。
-
将其分成两行并利用 C++11
using语句使其更可口,但不是更多。 Here 是 @πάνταῥεῖ 示例的略微修改版本。
标签: c++ typedef pointer-to-member