C ++ Typedef to const value指针的const地址

时间:2014-10-24 09:00:59

标签: c++ pointers const typedef

这是否有效,是否合法:

typedef const MyClass * const MY_CONST_TYPE

或者我必须将其分解为2个typedef?

感谢

3 个答案:

答案 0 :(得分:4)

如果你在语句的末尾放置一个分号,那么这个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;
}   

答案 1 :(得分:1)

正如其他人所指出的,这是完全有效的。在C ++ 11中要考虑的一个选择是使用新的using语法,您可能会发现它更容易阅读。

  using MY_CONST_TYPE = const MyClass* const;

答案 2 :(得分:0)

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