使用VC6打开考生文件夹下的工程test36_1,此工程包含一个源程序文件test36_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: 2 源程序文件test36_1.cpp清单如下: #include

admin2010-02-08  15

问题 使用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中的成员,在它的友元类中访问它时应该使用作用域符“::”,本题的错误是使用了冒号。
转载请注明原文地址:https://kaotiyun.com/show/67ID777K
0

随机试题
最新回复(0)