如何知道函数内参数的格式C++
How to know the format of the parameter inside a function C++
我一直在尝试在 C++ 中像在 C# 中那样创建一个 Convert.To 命令,但我不想像“IntToString”那样做,而是想像在 C# 中那样像“ToString”那样做。我想知道我怎么知道函数内部给定的参数格式?或者还有其他方法吗?
#include <iostream>
#include <sstream>
class converting {
public:
std::string Int32ToString(int x) {
std::stringstream asd;
asd << x;
std::string cnvrtd;
asd >> cnvrtd;
return cnvrtd;
}
int StringToInt32(std::string x) {
std::stringstream asdf(x);
int cnvrtd;
asdf >> cnvrtd;
return cnvrtd;
}
};
int main() {
converting Convert;
std::cout << "This is for a test. Avaiable options are:" << std::endl << "StringToInt32" << std::endl << "Int32ToString" << std::endl;
std::string firstinput;
std::cin >> firstinput;
if (firstinput == "StringToInt32") {
std::string input;
int result;
std::cin >> input;
result = Convert.StringToInt32(input);
std::cout << result;
return 0;
}
else if (firstinput == "Int32ToString") {
int input;
std::string result;
std::cin >> input;
result = Convert.Int32ToString(input);
std::cout << result;
return 0;
}
else {
std::cout << "Please enter a valid input";
return 0;
}
}
当你说 - 函数内部给出的参数格式时,你的意思是,你怎么知道参数的数据类型。如果是这种情况,您将不得不为所有要支持转换的数据类型编写函数,在 Converting class 中使用相同的函数名称,这在 C++ 中称为函数重载。例如
std::string convert (int n){}
std::string convert (float n){}
std::string convert (double n){}
当您调用此转换函数时,编译器将根据数据类型选择合适的重载函数。
然而,通过编写类似
的模板函数,可以通过更小的方式实现相同的功能
template<class Dt>
std::string Convert (Dt n){
return std::to_string(n);
}
如果你提到了任何限制,希望我没有遗漏。
我一直在尝试在 C++ 中像在 C# 中那样创建一个 Convert.To 命令,但我不想像“IntToString”那样做,而是想像在 C# 中那样像“ToString”那样做。我想知道我怎么知道函数内部给定的参数格式?或者还有其他方法吗?
#include <iostream>
#include <sstream>
class converting {
public:
std::string Int32ToString(int x) {
std::stringstream asd;
asd << x;
std::string cnvrtd;
asd >> cnvrtd;
return cnvrtd;
}
int StringToInt32(std::string x) {
std::stringstream asdf(x);
int cnvrtd;
asdf >> cnvrtd;
return cnvrtd;
}
};
int main() {
converting Convert;
std::cout << "This is for a test. Avaiable options are:" << std::endl << "StringToInt32" << std::endl << "Int32ToString" << std::endl;
std::string firstinput;
std::cin >> firstinput;
if (firstinput == "StringToInt32") {
std::string input;
int result;
std::cin >> input;
result = Convert.StringToInt32(input);
std::cout << result;
return 0;
}
else if (firstinput == "Int32ToString") {
int input;
std::string result;
std::cin >> input;
result = Convert.Int32ToString(input);
std::cout << result;
return 0;
}
else {
std::cout << "Please enter a valid input";
return 0;
}
}
当你说 - 函数内部给出的参数格式时,你的意思是,你怎么知道参数的数据类型。如果是这种情况,您将不得不为所有要支持转换的数据类型编写函数,在 Converting class 中使用相同的函数名称,这在 C++ 中称为函数重载。例如
std::string convert (int n){}
std::string convert (float n){}
std::string convert (double n){}
当您调用此转换函数时,编译器将根据数据类型选择合适的重载函数。
然而,通过编写类似
的模板函数,可以通过更小的方式实现相同的功能template<class Dt>
std::string Convert (Dt n){
return std::to_string(n);
}
如果你提到了任何限制,希望我没有遗漏。