1,单继承方式
AbStudent.cpp代码如下:
#include "pch.h"
#include <iostream>
//#include "CPeople.h"
#include "CStudent.h"
int main(int argc ,char* argv[])
{
CStudent stu;
return 0;
}
CPeople.cpp代码如下:
#include "pch.h"
#include "CPeople.h"
#include<iostream>
using namespace std;
CPeople::CPeople()
{
cout << "people" << endl;
}
CPeople::~CPeople()
{
}
CStudent.cpp代码如下:
#include "pch.h"
#include "CStudent.h"
#include "iostream"
using namespace std;
//可以看到CStudent首先执行基类的构造函数然后再执行自己类的构造函数
CStudent::CStudent()
{
cout << "student" << endl;
}
CStudent::~CStudent()
{
}
CPeople.h代码如下:
#pragma once
class CPeople
{
public:
CPeople();
~CPeople();
private:
char name[10];
};
CStudent.h代码如下:
#pragma once
#include "CPeople.h"
class CStudent :
public CPeople
{
public:
CStudent();
~CStudent();
private:
char no[10];
};
运行结果 :
以上可以看到CStudent首先执行基类的构造函数然后再执行自己类的构造函数
2,多重继承
mulStudent.cpp代码如下
#include "pch.h"
#include "CXiao.h"
int main(int argc , char* argv[])
{
CXiao xiao((char*)"A003", (char*)"li", (char*) "prof");
xiao.display();
return 0;
}
cstudent.cpp代码如下
#include "pch.h"
#include "CStudent.h"
#include <iostream>
using namespace std;
CStudent::CStudent(char* no ,char* name)
{
strcpy_s(this->no , no);
strcpy_s(this->name , name);
}
CStudent::~CStudent()
{
}
char* CStudent::getNo()
{
return no;
}
char* CStudent::getName()
{
return name;
}
cteacher.cpp代码如下
#include "pch.h"
#include "CTeacher.h"
#include <iostream>
using namespace std;
CTeacher::CTeacher(char* position)
{
strcpy_s(this->position , position);
}
CTeacher::~CTeacher()
{
}
char* CTeacher::getPosition()
{
return position;
}
cxiao.cpp代码如下
#include "pch.h"
#include "CXiao.h"
#include <iostream>
using namespace std;
CXiao::CXiao(char* no, char* name, char* position):CTeacher(position),CStudent(no,name)
{
}
CXiao::~CXiao()
{
}
void CXiao::display()
{
cout << "name:" << getName() << ",no :" << getNo() << ",positon:" << getPosition() << endl;
}
cstudent.h代码如下
#pragma once
class CStudent
{
public:
CStudent(char* no ,char* name);
~CStudent();
private:
char no[10];
char name[10];
public:
char* getNo();
char* getName();
};
cteacher.h代码如下
#pragma once
class CTeacher
{
public:
CTeacher(char* position);
~CTeacher();
private:
char position[10];
public:
char* getPosition();
};
cxiao.h代码如下
#pragma once
#include "CTeacher.h"
#include "CStudent.h"
class CXiao:public CTeacher,public CStudent
{
public:
CXiao(char* no, char* name, char* position);
~CXiao();
public:
void display();
};
运行结果如下: