typedef T Type :: * syntax

时间:2016-03-23 23:52:25

标签: c++ syntax

我需要帮助才能理解以下(简化)代码剪辑:

const processArgs = ['-e', 'tell application "iTunes" to activate'];

我需要帮助理解的两行最后标有template < typename R > struct Variable { typedef VariableBaseTable< R > BaseType; typedef R BaseType::* VarType; //! template < typename Type > R & operator()(Type * obj) const { return (reinterpret_cast< ObjType >(obj))->*(_variable); //! } // more stuff follows }

我无法理解//!定义的是什么。特别是R BaseType::*语法如何工作。

在第二个标记的行中,我无法理解语法::*,我可以看到obj被解除引用,但是obj->*(_var)之后正在做什么?

1 个答案:

答案 0 :(得分:2)

typedef R BaseType::* VarType;

是一种类型别名,它将VarType定义为BaseType类型R的成员指针。在第二个标记的行中,您通过pointer-to-member access operator _variable访问字段->*,例如, this了解有关语法和一些示例的更多详细信息。