|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
复制代码 谢谢! |
|