【发布时间】:2011-01-16 06:14:32
【问题描述】:
首先,示例代码:
案例一:
typedef char* CHARS;
typedef CHARS const CPTR; // constant pointer to chars
文字替换 CHARS 变为:
typedef char* const CPTR; // still a constant pointer to chars
案例 2:
typedef char* CHARS;
typedef const CHARS CPTR; // constant pointer to chars
文字替换 CHARS 变为:
typedef const char* CPTR; // pointer to constant chars
在案例 2 中,在文本替换 CHARS 后,typedef 的含义发生了变化。为什么会这样? C++ 如何解释这个定义?
【问题讨论】:
-
一般来说,typedef 指针(隐藏星号)是个坏主意,正是因为 const 不能再插入到指向的类型和星号之间了。
标签: c++ pointers constants typedef