当我们谈到类的时候一定会说到继承,继承可以实现代码的重用功能,今天来说一下有关类继承的相关问题,这里主要是关于类继承时候的关键字的区别,使用不同的继承关系带来的不同的效果。我喜欢将描述都写在代码中,所以看代码吧!

//父类people的头文件
#ifndef _PEOPLE_H_
#define _PEOPLE_H_
#include <iostream>

using namespace std;
class People
{
private:
	string name;
	int getAge(){return age;};
public:
	int age;
	string getName(){return name;};
	People():name("zhangsan"),age(10){};
};
#endif
//子类student的头文件
#ifndef _STUDENT_H_
#define _STUDENT_H_
#include <iostream>
#include "People.h"

using namespace std;

class Student : private People
{
public:
	//不论student是公有继承自people,还是私有继承自people,People中的公有成员和方法在子类中都是可以访问的,但是
	//私有成员和方法在子类中都是不可以访问的,说白了就是继承了父类共有的东西,私有的东西子类是没有继承下来的
	//也就是说在类的声明中,如果是public的成员变量和函数,则在子类和外部通过对象调用都是可以访问的,类声明中的
	//这些public和private是针对子类和外部对象调用的时候起作用的
	//Student(){People::getName();People::age;};
	//Student(){People::getAge();People::name;}; //错误
	//在类继承的时候使用public时,子类继承的方法和成员变量在外部是可以通过对象调用的,使用private时,继承下来的
	//东西是不可以通过对象在外部调用的,也就是说,对象继承时候的public和private是说子类继承下来的时候是作为公有
	//的呢,还是私有的成员变量和成员函数
	//当使用protected的时候类推
	Student(){People::getName();People::age;};

};

#endif
#include <iostream>
#include "Student.h"

using namespace std;

int main()
{
	Student stu;
	//在类继承的时候使用public时,子类继承的方法和成员变量在外部是可以通过对象调用的
	/*stu.getName();
	stu.age;*/

	return 0;
}