定义一个"数据类型" datatype 类,能处理包含字符型、整型、浮点型三种类型的数 据,给出其构造函数和成员函数show( )。已知声明了枚举和联合体类型。 enum TYPE { INT, CHAR, FLOAT,DOUBLE }; //已知所处理类型只有3种可能,运用枚举类型 union DATA { int i; char c; float f; double d; }; 示例: 输入 输出 12 c 23.45 123.456 int 12 char c float 23.45 double 123.456
时间: 2023-06-11 09:04:28 浏览: 112
数据类型介绍
好的,我理解了。以下是解答:
首先,我们需要定义一个数据类型 datatype 类来处理包含字符型、整型和浮点型三种类型的数据。我们可以使用枚举类型 TYPE 来表示所处理的三种数据类型,以及一个联合体 union DATA 来储存要处理的数据。
代码如下:
```
enum TYPE { INT, CHAR, FLOAT };
union DATA {
int i;
char c;
float f;
};
class datatype {
private:
TYPE type; // 储存数据类型
DATA data; // 储存数据
public:
datatype(int i) { // 构造函数,接受整数类型的数据
type = INT;
data.i = i;
}
datatype(char c) { // 构造函数,接受字符类型的数据
type = CHAR;
data.c = c;
}
datatype(float f) { // 构造函数,接受浮点类型的数据
type = FLOAT;
data.f = f;
}
void show() { // 成员函数,输出数据类型和数据
switch (type) {
case INT:
cout << "int " << data.i << endl;
break;
case CHAR:
cout << "char " << data.c << endl;
break;
case FLOAT:
cout << "float " << data.f << endl;
break;
}
}
};
```
在上面的代码中,构造函数分别接受整数、字符和浮点数类型的数据,并分别将它们存入联合体 DATA 的相应成员 i、c 和 f 中。成员函数 show() 用于输出数据类型和数据。
现在,我们可以定义几个 datatype 类的实例来处理输入数据,并输出结果了。假设输入的数据为 12 (int)、c (char) 和 23.45 (float),可以这样编写代码:
```
datatype data1(12);
datatype data2('c');
datatype data3(23.45);
data1.show();
data2.show();
data3.show();
```
运行上面的代码,输出的结果应该如下:
```
int 12
char c
float 23.45
```
以上就是定义数据类型 datatype 类并编写构造函数和成员函数 show() 的解答了。请问还有什么问题需要我帮忙解答吗?
阅读全文