Person.h
<pre name="code" class="cpp">
#ifndef __PERSON__
#define __PERSON__
#include <iostream>
#include <cstring>
using namespace std;
class Person{
public:
string name;
virtual void sayHello();
void test();
Person(string name){
name=name;
}
virtual ~Person(){
cout<<"person destructor \n";
}
};
#endif
Girl.h
#ifndef __GIRL__
#define __GIRL__
#include <iostream>
#include <cstring>
#include "Person.h"
using namespace std;
class Girl:public Person{
public :
string sex;
virtual void sayHello();
Girl(string name,string sex):Person(name),sex(sex){}
virtual ~Girl(){
cout<<"girl destructor \n";
}
};
#endif
Person.cpp
<pre name="code" class="cpp">#include <iostream>
#include <cstring>
#include "Person.h"
using namespace std;
void Person::sayHello(){
cout<<"---i am a person my name is "<<name;
}
void Person::test(){
cout<<"---i am testing";
}
Girl.cpp
#include <iostream>
#include <cstring>
#include "Girl.h"
#include "Person.h"
using namespace std;
void Girl::sayHello()
{
test();
cout<<"---hi , i am a girl \n";
}
main.cpp
#include <iostream>
#include <cstring>
#include "Girl.h"
#include "Person.h"
using namespace std;
int main()
{
Person * p=new Girl("lily","nv");
p->sayHello();
delete p;
return 0;
}
运行结果:
---i am testing---hi , i am a girl
girl destructor
person destructor