基类:Person,派生类1:Teacher,派生类2:Exper.
我想在Person中建立一个函数:void Person::Add()
{
if(top>=TMAX)  
{
cout<<"用户已满"<<endl;
return;
}
    Person t;
cout<<"输入新添加的人员的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==Tea[i].GetNum())
{
cout<<"该编号的人员已存在"<<endl;
return;
}
    Tea[top]=t;
    top=top+1;
cout<<"添加成功!"<<endl;
}
然后在Teacher跟Exper中继承这个函数,用来增加老师(Teacher)和实验员(Exper)的成员信息。
但是像上面的函数定义方法,有Person t;
怎样才能在teacher用到这个函数时,将它变成Teacher t;呢?
应该要怎样定义这个函数?
派生类继承

解决方案 »

  1.   

    c++中的多态,基类函数申明为virtual,然后派生类继承并重写这个函数,网上搜索一下资料很多的
      

  2.   

    定义为虚函数,Add函数增加个参数(Person类对象的指针或者引用)
      

  3.   

    首先,楼主的理解存在偏差,“Person t”是将类进行实例化,即t使Person类的一个具体对象,而不是定义一个函数;
    其次,你如果想在派生类中调用基类的函数的话,就需要在基类声明的时候将该函数定义为“虚函数”,关键字为virtual,然后在派生类中重写之。调用方法:Teacher.Add()。