标题:虚拟继承问题,求解疑问
只看楼主
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
结帖率:82.05%
已结贴  问题点数:10 回复次数:11 
虚拟继承问题,求解疑问
#include <iostream>
#include<String>
using namespace std;
class Teacher
{protected:
void show()
{
    cout<<"num:"<<num<<endl;
        cout<<"name:"<<name<<endl;
        cout<<"age:"<<age<<endl;
        cout<<"address:"<<add<<endl;
}
    string name;
    string add;
    int age;
    int num;
   
    string title;
};
class Cadre
{
public:
   
    string name;
    string add;
    int age;
    int num;
    string post;
   
   
private:

};
class Teacher_Cadre:virtual public Teacher,virtual public Cadre
{   public:
void get();
 void display();
    int wages;
};
void Teacher_Cadre::display()
{
        show();
        cout<<title<<endl<<post<<endl<<wages;
}
void Teacher_Cadre::get()
{
    cout<<"input num,name,add,age,title,post,wages:"<<endl;
    cin>>num>>name>>add>>age>>title>>post>>wages;
}

  int main()
  {
       Teacher_Cadre c;
      c.get();
      c.display();
return 0;
  }
搜索更多相关主题的帖子: namespace 继承 private address include 
2013-05-19 11:15
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:2 
函数前面加virtual

Maybe
2013-05-19 20:39
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:2 
答非所问

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-05-20 16:33
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
回复 3楼 peach5460
报错说这里有歧义,但我申明了虚拟类啊,请问错哪了

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2013-05-20 17:17
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
以下是引用唐兵在2013-5-20 17:17:33的发言:

报错说这里有歧义,但我申明了虚拟类啊,请问错哪了

呵呵,我只是说楼上的貌似说错了
虚继承没怎么用过

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-05-21 08:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:2 

void Teacher_Cadre::get()
{
    cout<<"input num,name,add,age,title,post,wages:"<<endl;
    cin>>num>>name>>add>>age>>title>>post>>wages;
}
中,你这里的num是指 Teacher::num 还是 Cadre::num ?神仙或许知道,但编译器肯定不知道。
2013-05-21 08:27
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
回复 6楼 rjsp
但我前面申明为虚拟类了的啊

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2013-05-22 12:42
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用唐兵在2013-5-22 12:42:45的发言:

但我前面申明为虚拟类了的啊

听不懂你在说什么,那好吧,既然“前面申明为虚拟类了”,那你希望
void Teacher_Cadre::get()
{
    cout<<"input num,name,add,age,title,post,wages:"<<endl;
    cin>>num>>name>>add>>age>>title>>post>>wages;
}
中的num是指 Teacher::num 还是 Cadre::num ?
2013-05-22 13:08
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
回复 6楼 rjsp
如果这样的话就行:
#include <iostream>
#include<String>
using namespace std;
class Teacher
{protected:
void show()
{
    cout<<"num:"<<num<<endl;
        cout<<"name:"<<name<<endl;
        cout<<"age:"<<age<<endl;
        cout<<"address:"<<add<<endl;
}
    string name;
    string add;
    int age;
    int num;
   
    string title;
};
class Cadre :virtual public Teacher
{
public:
   
    string name;
    string add;
    int age;
    int num;
    string post;
   
   
private:

};
class Teacher_Cadre:virtual public Cadre
{   public:
void get();
void display();
    int wages;
};
void Teacher_Cadre::display()
{
        show();
        cout<<title<<endl<<post<<endl<<wages;
}
void Teacher_Cadre::get()
{
    cout<<"input num,name,add,age,title,post,wages:"<<endl;
    cin>>num>>name>>add>>age>>title>>post>>wages;
}

  int main()
  {
       Teacher_Cadre c;
      c.get();
      c.display();
return 0;
  }
但我想问我前面那种哪错了呢,该怎样改

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2013-05-23 12:36
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
求解

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2013-05-24 12:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407472-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.147917 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved