7.9.1.17.GEL 表达式中的 C++ 支持¶
GEL 表达式语法中添加了以下 C++ 增强功能。
访问数据成员
“.”和“->”运算符(直接和间接成员选择)已扩展为可访问类的数据成员。无论 C++ 访问类型如何(公共、受保护或专有),均可访问所有数据成员。还提供基类的数据成员(除非被同名衍生类的成员所遮蔽)。被 C++ 编译器视为模糊的成员名称将由 Code Composer Studio 解析为可能的匹配项之一。
限定标识符
变量标识符可能是完全限定或部分限定的。可以使用 :: 范围运算符来访问全局或类静态函数或变量(例如 std::malloc
或 MyClass::static_var
)。当前范围由程序计数器 (PC) 确定,内部范围优先于外部范围。
例如,如果函数中当前有 PC:
N1::C1::C2::f(int)
并且此时计算标识符 C1::b
,则该标识符将匹配以下任一完全限定标识符(按照优先级顺序)
N1::C1::C2::C1::b
N1::C1::C2::b
N1::C1::b
C1::b
嵌套类型必须通过其完全限定名称进行引用。
“this”指针
当 PC 处于某个成员函数中时,指向关联对象的 this 指针可用。
对类成员的隐式访问
当 PC 处于某个成员函数中时,可以直接访问类(或基类)的任何数据成员,而无需显式通过 this 间接访问。例如,m_x
将解析为 this->m_x
(假设没有局部变量对其进行覆盖)。
转换对象指针
C/C++ 指针转换操作 (Type \*) value
可用于导航类层次结构,必要时对指针进行调整。与 C++ 编译器类似,在可能的情况下会执行 static_cast,否则执行 reinterpret_cast。即使存在多重继承,(Derived \*) base
和 (Base \*) derived
也能正确执行。
___
另请参阅: