C++中函数类型T指什么?是否指返回类型为T的函数?
函数到指针转换中“函数类型T”的含义
函数到指针的转换:函数类型T的左值可以隐式转换为指向该函数的纯右值指针。这不适用于非静态成员函数,因为不存在引用非静态成员函数的左值。
这里的函数类型T指的是完整的函数类型,绝非仅指“返回类型为T的函数”。完整的函数类型包含了函数的全部特征信息:
- 返回值类型
- 参数的类型、数量及是否带可变参数
- (针对成员函数的额外特征,不过此转换规则不适用于非静态成员函数)
举几个具体的函数类型示例:
void(int):代表“接受一个int类型参数、返回值为void的函数”std::string(const char*, size_t):代表“接受const char*和size_t类型参数、返回std::string的函数”int(double) const:这是类的const成员函数类型,不过此转换规则不适用这类非静态成员函数
当你拥有一个对应类型的函数左值(比如直接使用函数名时,它就是函数类型的左值),会被隐式转换成对应的函数指针类型。比如void(int)类型的函数会自动转换成void(*)(int)类型的指针。
内容的提问来源于stack exchange,提问作者LiDa Cute
相关产品推荐
相关产品推荐

