使用函数重载在 c++ 中用整数调用 char 等效函数

Calling a char equivalent function with integer in c++ using Function Overloading

本文关键字:函数 调用 char 整数 c++ 重载      更新时间:2023-10-16

我正在重载一个函数,它只是打印它作为参数收到的值。 这是代码

#include<iostream>
using namespace std;
void show(int c)
{
    cout<<"Int C : "<<c<<endl;
}
void show(char c)
{
    cout<<"char C : "<<c<<endl;
}
void show(float c)
{
    cout<<"Float C : "<<c<<endl;
}
void show(string c)
{
    cout<<"String C : "<<c<<endl;
}
void show(const char* c)
{
    cout<<"char *C : "<<c<<endl;
}
main()
{
    string s("Vector");
    show(25);
    show('Z');
    show("C++");
    show("Hello");
    show(4.9f);
    show(s);
}

这里 show(65) 调用整数函数。

我是否有可能简单地调用 show(65) 来打印 ASCII 等效值"A",即调用 show(char) 而不调用 show(int)

有没有可能我可以简单地调用 show(65) 来打印 ASCII 等效值"A",即调用 show(char) 而不调用 显示(int)

是的。将其转换为char

show(static_cast<char>(65));

或者使用"函数样式转换"方式进行转换。

show(char(65));

注意:当您的环境使用 ASCII 时,此操作才有效,因为C++不强制要求对字符进行 ASCII 编码。尽管使用不同编码的系统很少见。

或者你可以尝试通过创建带有char类型的变量,你可以把它传递给显示函数。

前任:

char test = 'Z';
Show(test);

它会起作用的!

不,它不起作用,因为:

  1. 你已经有一个将数字作为参数的函数。
  2. 您必须手动将其转换为字符:show(char(65))
  3. 即使您将其转换为字符,它也只有在使用 ASCII 的环境中时才有效(它不是 C++ 中唯一的编码系统)。

如果你已经知道你想要什么字符,你可以简单地这样做:

show('A');