C++中的继承

1.继承的定义

定义一个类的时候想要重用一个已经有了的类,就可以使用继承,
class Newclass:public oldclass{
//新增加的成员
};
新类会继承旧类的全部成员,成为新类中的成员。新类还可以增加新的成员,实现对旧类的扩展。
继承方式可以有public/private/protected三种一般使用public方式,旧类称为“父类”或者“基类”,新类称为“子类”或者“派生类”。无论哪种继承方式都是把父类的成员全部继承**(除过私有成员)**(复制)到子类中成为子类的成员,其中私有成员在子类中不能直接访问,特权是父类可以用protected来作为成员访问限制,这种成员称为保护成员。
这种成员在外跟private一样,但在子类中允许被直接访问。

2.不同继承方式区别

不同继承方式区别在于继承到子类之后,作为子类的成员对外的访问限制,private方式继承过来后所有成员都成为子类的私有成员,protected方式继承过来之后。原来私有的还是私有的,原来保护类和公开类的成员都成为子类的保护成员了,一般使用public方式继承,继承过来的成员到子类中后保持原有的访问限制不变,默认是private方式。

#include<iostream>
#include<string>
using namespace std;
class Person{
protected:
string name;
public:
void setname(const char *n ){
	name=n;
}
void eat(string food){
	cout<<name<<"吃"<<food<<endl;
}
void speak(string words){
	cout<<name<<"说:\""<<words<<"\"\n";
	}
};
class  Teacher:public Person{
	string course;
public:
	void teach(string someclass){
	cout<<name<<"给"<<someclass<<"班讲"<<course;
}
	void setcourse(string c){
		course=c;
	}
};
int main(){
	Person a;
	a.setname("芙蓉");
	a.eat("水煮鱼");
	a.speak("我会跳舞");
	Teacher c;
	c.setname("权哥");
	c.eat("炸酱面");
	c.speak("大家好才是真的好");
	c.teach("csd1212");
	c.setcourse("C++");
}
**程序运行结果如下**

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值