【发布时间】:2014-05-22 13:04:18
【问题描述】:
我总是被告知typedef 用于简化事物或缩短名称。我的意思是,我们可以在没有它的情况下做事。但是今天我尝试使用<ratio>库,不使用typedef我不知道该怎么做。
这是一个简单的例子:
#include <iostream>
#include <ratio> // C++11
int main()
{
const int a = 1, b = 17;
typedef std::ratio<a,b> p;
std::cout << "Number p = " << p::num << "/" << p::den << std::endl;
return 0;
}
如果不使用typedef,我怎样才能做到这一点?
【问题讨论】:
-
std::ratio<a,b>::num和std::ratio<a,b>::den不起作用?此外,typedef不仅仅是为了简化事情。有时它被用来赋予一种类型以意义。例如typedef int priority;和更高版本的priority p1, p2;。typedef的另一个非常流行的用例是用于抽象。例如,在一个系统中,您可能有typedef int sig_atomic_t;和另一个系统中的另一个定义。