【发布时间】:2011-01-26 12:44:37
【问题描述】:
规则是什么? OTOH 简单的案例似乎暗示新类型是一行的最后一件事。像这里Uchar是新类型:
typedef unsigned char Uchar;
但是函数指针完全不同。这里的新类型是pFunc:
typedef int (*pFunc)(int);
我想不出任何其他的例子,但我遇到了一些非常令人困惑的用法。
那么是否有规则,或者人们只是应该从经验中知道这是如何完成的,因为他们以前见过这样做?
另外:typedef 的范围是什么?
【问题讨论】:
-
也可能想研究
typedef typename构造 -
“那么有规则吗” - 不,我们只是在进行过程中编写语法。然后编译器读取我们的想法以了解我们的意思。
-
@aaa:
typedef typename构造?typename在模板中用于消除类型的歧义。这将是一种类型的一部分;它不是typedef的特殊形式。 -
这就像说你想研究
typedef class构造。 -
C++11 的别名声明(带有
using的类型定义)更具可读性,尤其是函数指针。它们对于模板化的 typedef 也是必需的。所以,你可能也想看看那些。一个好的指南是msdn.microsoft.com/en-CA/library/dn467695.aspx。
标签: c++ c function-pointers typedef