关于C ++中Typedef用法的问题

时间:2011-06-07 14:58:31

标签: c++ typedef

我在键盘上编写了以下代码,但我不明白它应该如何/为什么要编译。

#include<iostream>

using namespace std;

typedef double dObject;
typedef int iObject;
typedef void (*swapfuncptr)(dObject, dObject);

void swap(dObject a,dObject b) {
cout << a << " " << b << endl;
dObject tmp;
tmp = a;
a = b;
b = tmp;
cout << a << " " << b << endl;
}
int main() {

double a = 7.5, b = 5.3;
swapfuncptr swapptr1;
swapptr1 = &swap;
swapptr1(a, b);

int c = 3, d = 2;
swapfuncptr swapptr2;
swapptr2 = &swap;
swapptr2(c, d);

swapfuncptr swapptr3;
swapptr3 = &swap;
swapptr3('r', 'd');
return 0;
}

所以dobject仅用于具有整数参数的函数的双精度也适用。我不明白这是怎么回事。

有人可以解释一下。

由于 小号

1 个答案:

答案 0 :(得分:4)

int可隐式转换为double。为typedef创建double并不会改变这一点。