| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
本程序建立基类Animal,继承类Dog,友元类Cat,想通过Cat类中的cateat()调用基类animaleat(),却不能成功,求帮忙看看代码哪里有问题?- #include<iostream>
 
 - #include<string>
 
 - using namespace std;
 
 - class Animal
 
 - {
 
 -   public: 
 
 -       
 
 -       void animalname(string thename)
 
 -           {
 
 -                   name=thename;
 
 -           }  
 
 -           void eat(string name)
 
 -           {
 
 -               cout<<name<<"eating!\n"<<endl;
 
 -           }
 
 -  private:
 
 -   string name;
 
 -     
 
 -  friend class Cat;
 
 - };
 
  
- class Pig: public Animal
 
 - {
 
 - public:
 
 -     void pigname(string thename)
 
 -         {
 
 -                 name=thename;
 
 -         }
 
 -         
 
 -         void climb()
 
 -         {
 
 -           cout<<name<<"climbing!\n"<<endl;
 
 -         }        
 
  
- protected:
 
 -     string name;
 
 - };
 
  
- class Cat
 
 -         {
 
 -         public:
 
 -            string name;
 
 -            void catname(Animal * p)
 
 -                    {
 
 -                        name=p->name;
 
 -               }
 
 -               void cateat(Animal * p)
 
 -               {
 
 -                           p.eat(p->name);                //<font color="#ff0000"><b>此行代码出现错误,<span style="background-color: rgb(255, 255, 255);">想</span>通过Cat类中的cateat()调用基类animaleat(),却不能成功</b></font>
 
 -               }
 
 -         };
 
 -         
 
 - int main()
 
 - {  
 
 -         Animal animal;
 
 -     Pig pig;
 
 -     Cat cat;
 
 -     
 
 -         animal.animalname("小动物");
 
 -         animal.eat("小动物");
 
  
-     pig.pigname("大狗");
 
 -         pig.eat("大狗");
 
 -         pig.climb();
 
 -         
 
 -     cat.catname( &animal);
 
 -     cat.cateat(&animal);
 
 -         cout<<cat.name<<endl;
 
  复制代码 谢谢!  |   
 
 
 
 |