声明一个datatype(数据类型)类,该类能够根据用户的输入,确定输入的数据类型,能处理包含字符型、整形、浮点型3种类型的数据,并给出合理的输出。 提示:需要进行构造函数的重载
时间: 2024-04-29 08:22:20 浏览: 118
通过type实现了数据类型的输出
以下是一个实现上述功能的C++代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class datatype {
public:
datatype() {} // 默认构造函数
datatype(string input) { // 重载构造函数
if (is_int(input)) {
cout << "This is an integer." << endl;
} else if (is_float(input)) {
cout << "This is a float." << endl;
} else {
cout << "This is a string." << endl;
}
}
private:
bool is_int(string s) { // 判断是否是整数
if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) {
return false;
}
char* p;
strtol(s.c_str(), &p, 10);
return (*p == 0);
}
bool is_float(string s) { // 判断是否是浮点数
if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) {
return false;
}
char* p;
strtof(s.c_str(), &p);
return (*p == 0);
}
};
int main() {
string input;
cin >> input;
datatype dt(input);
return 0;
}
```
在上述代码中,我们定义了一个 datatype 类,并在其中实现了两个私有成员函数 is_int() 和 is_float(),用于判断输入的字符串是否为整数和浮点数。在重载的构造函数中,我们根据输入的字符串调用 is_int() 和 is_float() 进行判断,并输出相应的数据类型。在主函数中,我们首先读入用户的输入,然后创建一个 datatype 对象,利用重载的构造函数进行判断和输出。
阅读全文