C++中的继承

 Public继承: 父类中public成员继承到子类中,在类外、类内都可以访问

               父类中private成员在子类类内中是不可访问

               父类中protected成员在子类类内是可以访问

  Private继承:

               父类中public成员继承到子类中,在类外不可以访问,类内部是可以访问

               父类中private成员在子类类内是不可以访问的

               父类中protected成员在子类类内是可以访问

  Protected继承:

               父类中public成员继承到子类中,在类外不可以访问,类内部是可以访问

                父类中private成员在子类类内是不可以访问的

                父类中protected成员在子类类内是可以访问

举例public继承

#include <iostream>
using namespace std;
#include <string>

//人类: 属性:姓名、性别、年龄  行为:吃、睡、show
//工人类:属性:姓名、性别、年龄、工资   行为:work
class Person
{
public:
	Person(string name, string sex = "男", int age = 30) :name(name), sex(sex), age(age)
	{
		cout << "Person(string,string,int)" << endl;
	}
	~Person()
	{
		cout << "~Person" << endl;
	};
	void eat()
	{
		cout << this->name << "eat..." << endl;
	}
	void sleep()
	{
		cout << this->name << "sleep..." << endl;
	}
	void show()
	{
		cout << "姓名:" << this->name << "性别:" << this->sex << "年龄:" << this->age << endl;
	}
protected:
	string name;
	string sex;
	int age;
private:

};
class Worker :public Person
{
public:
	Worker(string _name,string _sex = "男",int _age = 28,int _salary = 5000):Person(_name,_sex,_age),salary(_salary)
	{
		cout << "Worker(string,string,int,int)" << endl;
	}
	~Worker()
	{
		cout << "~Work()" << endl;
	}
	void work()
	{
		sleep();
		eat();
		show();
		cout << name << endl;
		cout << this->name<<"工作...." << endl;
	}
	void show()
	{
		cout << "姓名:" << this->name << "性别:" << this->sex << "年龄:" << this->age << "薪水"<<this->salary<<endl;
	}
protected:
	int salary;
private:

};
int main()
{
	cout << sizeof(Person) << endl;
	cout << sizeof(Worker) << endl;
	Worker w("zhangsan");
	w.show();
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值