2014-03-12 22 views
0

你可以的typedef数据类型:的typedef一个重载函数

typedef String std::string; 

你可以的typedef功能

typedef String itos(int val); 
itos std::to_string; 

你怎么可以的typedef重载函数

如。

typedef String to_string(all overloads); 
to_string std::to_string; 
+4

你不能。参数的类型是函数的一部分,如果你有不同的参数,你有不同的类型。 –

回答

1

在C++中,过载机制允许调用具有相同名称但参数类型不同的函数。每个重载函数都有不同的类型(实际上它们都是独立的函数)。对于每个这样的函数编译器生成函数decorated names,将函数名称添加参数类型,以便链接器能够区分它们。

typedef不创建单独的类型。所以,你不能将几种类型匹配到一个typedef声明中,这是不可能的。在C++ 11中,您可以使用using类型别名,而不是typedef,它具有更清晰的语法。