【问题标题】:C++ Typedef to const value const address of pointerC ++ Typedef到常量值常量指针的地址
【发布时间】:2014-10-24 09:00:59
【问题描述】:

这是否可行,是否合法:

typedef const MyClass * const MY_CONST_TYPE

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

谢谢

【问题讨论】:

    标签: c++ pointers constants typedef


    【解决方案1】:

    只要您在语句的末尾放置一个分号,就不会证明这个 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;
    }   
    

    【讨论】:

      【解决方案2】:

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

        using MY_CONST_TYPE = const MyClass* const;
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-22
          • 2021-10-02
          • 1970-01-01
          • 2020-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多