C++Typedef到指针的const值const地址

C++ Typedef to const value const address of pointer

本文关键字:const 地址 指针 C++Typedef      更新时间:2023-10-16

这会起作用吗?它合法吗:

typedef const MyClass * const MY_CONST_TYPE

还是我必须把它分解成2个typedef?

感谢

如果在语句末尾放一个分号,则没有什么能证明这个typedef是正确的。

以下是的示例

class MyClass {};
typedef const MyClass * const MY_CONST_TYPE;
int main() 
{
    MyClass a;
    MY_CONST_TYPE pa = &a;
    return 0;
}   

或者使用详细的类型名称,您甚至可以更改声明的顺序

typedef const class MyClass * const MY_CONST_TYPE;
class MyClass {};
int main() 
{
    MyClass a;
    MY_CONST_TYPE pa = &a;
    return 0;
}   
正如其他人所指出的,它是完全有效的。在C++11中需要考虑的一个选项是使用新的using语法,您可能会发现它更容易阅读。
  using MY_CONST_TYPE = const MyClass* const;

const MyClass * const本身就是一个有效类型。因此,你的typedef也可以,只要你在末尾加一个分号!