下列程序编译错误,是由于划线处缺少某个语句,该语句是【 】。 #include <iostream. h> class A { ______ private: int numl; public

admin2010-06-06  55

问题 下列程序编译错误,是由于划线处缺少某个语句,该语句是【 】。
   #include <iostream. h>
   class A
   {
        ______
   private:
         int numl;
   public:
         A():numl(0){}
         A(int i):numl(i){}
   };
   class B
   {
   private:
        int num2
   public:
        B():num2(0){}
        B(int i):num2(i){}
        int my_math(A obj1,B obj2);
   };
   int B::my_math(A obj1,B obj2)
   }
        return (obj1.num1+obj2.num2);
   }
   void main(void)
   {
        A obj1 (4)
        B obj,obi2(5);
        cout <<"obj1+obj2:"<<obj.my_math(obj1,obj2);
   }

选项

答案friend class B;

解析 在B类中出现了对A类中私有成员num1的直接访问,这是不允许的。所以必须要把类B设成类A的友员就可以编译通过了。
转载请注明原文地址:https://kaotiyun.com/show/sgjp777K
0

最新回复(0)