面向对象编程中继承的概念,继承是c++面向对象程序设计的重要特性之一
Yyds干货库存
C的朋友都知道,C主要从三个方面解释,一是封装,二是继承,三是多态;一开始,我们是通过封装来启动C的。我们知道有三种类型的封装:受保护的属性、私有属性和公共属性。这里不做过多解释。接下来我们来看c中的第二个3354继承。
很多朋友会问,什么是传承?其实这里的理解很简单。“子承父业”,我们这里对“子与父”有一个约定俗成的称呼,“子”,派生类或子类;“父类”,基类或父类。c指定了三种继承方式。参见下表;
上表是C中的重要知识点,其实不用背,理解了自然就跟着来了。看一下下面的代码:
#包括iostream
使用命名空间std
类别基础
{
私人:
int b1
受保护:
int b2
公共:
空集合(int m,int n)
{
B1=m;
B2=n;
}
无效显示()
{
cout b1= b1 endl
cout b2= b2 endl
}
};
基本类别1
{
私人:
int b1
受保护:
int c2
公共:
void sz(int a,int b);
void显示();
};
void Base1:sz(int a,int b)
{
B1=a;
C2=b;
}
void Base1:display()
{
cout c1= b1 endl
cout c2= c2 endl
}
类别衍生:public Base,public Base1
{
私人:
int d;
公共:
void setall( int a,int b,int m,int n,int l)
{
set(m,n);
sz(a,b);
d=l;
}
void showall()
{
cout d= d endl
}
~派生()
{
“cout”析构:“b2 endl
“cout”析构:“c2 endl
}
};
int main()
{
派生的obj
obj.setall(30,40,50,60,70);
obj . show();
obj . display();
obj . showall();
返回0;
}
有些朋友可能和我一样。刚开始学的时候,看到这么长的代码,“我头疼!”其实我是来告诉你,代码越长越好理解;相反,代码越短,我们越难理解。因为代码越长,他能提供给我们的信息就越多。
请看上面的代码。我定义了两个类,一个是“Base”,一个是“Base 1”;下面的Derived就是我们开头解释的派生类,也就是子类;他是以公有继承的方式继承的。这里告诉你一个公式。
(1)“传承方式决定上限”,这是一种理解方式;
(2)父类中的继承方法和属性应该最小。
示例:classderived: publicbase,publicbase1
在这行代码中,派生类是派生的,它以保护继承的方式继承了两个父类Base和Base1。然后,Base中的公共类型和公共继承的组合,表示派生类可以访问父类的公共属性的函数;如果public继承了受保护的属性,它仍然是派生类中的受保护属性,也是可访问的;当然,公众继承的私有财产是不能继承的,私有财产在三种继承方式中是隐形的。
示例:类派生:受保护的基,受保护的基1
这里用受保护的继承来继承父类,所以当受保护的继承父类中的公共属性时,虽然此时可以访问,但父类中的公共属性已经变成了受保护的属性。
示例:classderived: private base,private base 1
所以,你看,这里是私有继承的方式,所以这个时候,父类下的所有属性,在下面的调用函数里,都是不能访问的,也就是看不见的。
这里要给大家普及一个点。派生和继承是相对而言的。派生是相对于父类的。然而,继承是相对于子类而言的;
本章到此为止。如有错误,请指正!
在此,也祝所有上岸考研的同学,以及没有考研的同学,都能变得更好!
,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。