问题 填空题

使用VC6打开考生文件夹下的工程test36_1,此工程包含一个源程序文件test36_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: 2 源程序文件test36_1.cpp清单如下: #include<iostream.h> class amount; class coins { /***************** found *****************/ enum units {penny, nickel, dime, quarter, half_dollar} /***************** found *****************/ class amount; }; class amount {/***************** found *****************/coins:units money; public:void setm();int germ(); }; void amount::setm() {money = coins::dime; } int amount::getm() {return money; } int main ( ) {amount ob;ob.setm();cout << ob.getm()<<end1;return 0; }

答案

参考答案:

解析:(1) 错误;enum units{penny,nickel,dime,quarter,half_dollar} 正确:enum units {penny,nickel,dime,quarter,half_dollar}; (2) 错误:class amount; 正确:friend class amount; (3) 错误:coins:units money; 正确:coins::units money; (1)enum是枚举类型,units是本题中该类型的一个变量,后面为枚举表,大括号中为枚举符,枚举变量的值实际上是一个有名字的常量,所以它的定义结束时也需要一个分号; (2)类amount是类coins中定义的成员,要是想要访问coins类中的私有成员,把amount定义成普通的数据成员是不能做到的,只能把它定义成友元类,即可以访问coins类中的所有成员(提示:units是使用的默认定义,即私有成员); (3)units是类coins中的成员,在它的友元类中访问它时应该使用作用域符“::”,本题的错误是使用了冒号。

选择题
单项选择题