编写一个类C,提供3个构造函数,分别为无参构造函数、接受一个整数作为参数的构造函数、接受一个double类型浮点数作为参数的构造函数。按照题目内容要求,输出相应的信息(10分)
题目内容:
类的数据成员:
类C中有一个私有整型数据成员 x,被就地初始化为0;
类的函数成员:
- 构造函数1:整数参数构造函数
该构造函数接收一个整型参数x,用该参数值初始化类中的私有数据成员x。
在函数体内使用std::cout输出字符串“C(x)”并且换行,该字符串中的x要替换为整型参数x的值。不加空格、制表等空白字符。注意输出字符串中的C是大写字母,括号是半角括号。
- 构造函数2:double类型参数的构造函数
该构造函数接收一个浮点型参数d,然后委托上面的“构造函数1”构造对象。浮点型参数d经过C++风格的强制类型转换后,作为“构造函数1”的参数。
在函数体内使用std::cout输出字符串“C(d)”并且换行,该字符串中的x要替换为浮点型参数d的值。不加空格、制表等空白字符。注意输出字符串中的C是大写字母,括号是半角括号。
- 构造函数3:无参构造函数
无参构造函数委托上面的“构造函数2”构造对象。参数值为3.8
在无参构造函数的函数体内,用std::cout输出字符串“C()”并且换行,不加任何其它空格、制表符等额外字符。注意,一对小括号之间没有空白。
主函数:
在主函数中,按照下列顺序创建三个C对象:
-
调用构造函数3创建一个对象;
-
调用构造函数2创建一个对象,参数值为2.2
-
调用构造函数1创建一个对象,参数值为 1
主函数中无std::cin.get()等输入输出语句;
输入格式:
无
输出格式:
无
输入样例:
无
输出样例:
C(3)
C(3.8)
C()
C(2)
C(2.2)
C(1)
注意上面的输出第6行之后有一个换行符,即第7行是空行
#include <iostream>
using std::cout;
using std::endl;
class C
{
private:
int x{0};
public:
C(int);
C();
C(double);
};
C::C(double d):C(static_cast<int>(d))
{
cout << "C(" << d << ")" << endl;
}
C::C():C(3.8)
{
cout << "C()" << endl;
}
C::C(int x)
{
cout << "C(" << x << ")" << endl;
this -> x = x;
}
int main()
{
C a;
C b(2.2);
C c(1);
}