c语言重载与友元: 问题描述】声明一个datatype(数据类型)类,该类能够根据用户的输入,确定输入的数据类型,能处理包含字符型、整形、浮点型3种类型的数据,并给出合理的输出。 提示:需要进行构造函数的重载 【输入形式】给用户选择,当输入1时,选择输入整型;输入2时,输入字符型;选择3时,输入浮点型。不考虑其他错误情况 【输出形式】输入该数据以及该数据的类型 【样例输入1】 2 c 【样例输出1】character:c 【样例输入2】 1 12 【样例输出2】int:12 【样例输入3】 3 1.44F 【样例输出3】float:1.44
时间: 2023-12-03 15:01:45 浏览: 117
以下是对应的C++代码,实现了题目要求:
```cpp
#include <iostream>
using namespace std;
class datatype {
private:
int iData;
char cData;
float fData;
public:
datatype(int i): iData(i) {}
datatype(char c): cData(c) {}
datatype(float f): fData(f) {}
void print() {
if (iData) {
cout << "int:" << iData << endl;
} else if (cData) {
cout << "character:" << cData << endl;
} else if (fData) {
cout << "float:" << fData << endl;
}
}
};
int main() {
int choice;
cin >> choice;
if (choice == 1) {
int i;
cin >> i;
datatype data(i);
data.print();
} else if (choice == 2) {
char c;
cin >> c;
datatype data(c);
data.print();
} else if (choice == 3) {
float f;
cin >> f;
datatype data(f);
data.print();
}
return 0;
}
```
在这个代码中,我们定义了一个datatype类,使用了构造函数的重载来实现根据用户输入的不同数据类型来创建对象。然后,使用print()函数来输出对应的数据类型和数据值。最后在main函数里,根据用户的选择,读入不同的数据并创建datatype对象,并调用print()函数来输出结果。
阅读全文