阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。
[说明]
已知以下C++程序运行时的输出结果如下。
1:1
1:1
1:1
[C++程序]
01 #include <iostream>
02 using namespace std;
03 class Stock{
04 protect:
05 (1) { };
06 Stock(int n, int pr=1) {
07 shares = n; share_val=pr;
08 };
09 void ~Stock() { };
10 public:
11 //成员函数
12 void output() {
13 (2) << shares << ":" << share_val << endl;
14 }
15 private:
16 //成员变量
17 int shares;
18 int share_val;
19 };
20
21 void main() {
22 Stock a(1); a.output
23 Stock b; b.output
24 Stock c = Stock (); c.output
25 }
[问题1] 请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。 |
参考答案:
解析:由题干的说明可知,程序的输出全部为1。根据主程序main()中语句“Stock b;”可以判断出:类Stock有默认的构造函数,且该构造函数将初始化类中的一些成员变量。因此(1)空缺处所填写的内容为Stock的构造函数,即“Stock():shares(1),share_val(1)”或“Stock():share_val(1),shares(1)”。 由于该Stock构造函数的函数体内没有语句,因此只能采用初始化列表的方式对成员变量进行初始化。成员函数output输出成员变量的值,即(2)空缺处所补充的内容是“cout”。