blog:cpp:basic_type_alias_and_const

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
上一修订版两侧同时换到之后的修订记录
blog:cpp:basic_type_alias_and_const [2022/04/17 17:55] caodanblog:cpp:basic_type_alias_and_const [2022/04/17 18:19] caodan
行 31: 行 31:
 typedef void  (*FP)(int, const std::string &); typedef void  (*FP)(int, const std::string &);
 using FP = void (*)(int, const std::string &);  // 使用using方式更自然,易懂 using FP = void (*)(int, const std::string &);  // 使用using方式更自然,易懂
 +```
 +
 +`using 比 typedef 的适用范围广`, 例如在using 可以在模板别名中使用,但using却不行。
 +
 +```
 +template <typename T>
 +using Vec = MyVector<T, MyAlloc<T>>;
 +
 +Vec<int> vec;
 ``` ```
  
 ## 指针、常量与类型别名 ## 指针、常量与类型别名
 +
 +如果某个类型别名指代的是复合类型或常量,那么把它用到声明语句里会产生意想不到的后果
 +
 +例如下面的声明语句用到了类型pstring, 它实际上是类型 `char *` 的别名
 +
 +```
 +using pstring = char *;
 +const pstring cstr = nullptr;   // cstr 是 指向字符 的 常量指针 
 +const char *c_str;              // c_str是 指向常量字符 的 指针
 +```
  
  
  • blog/cpp/basic_type_alias_and_const.txt
  • 最后更改: 2022/04/17 18:35
  • caodan