c++中的公有继承,私有继承和保护继承

首先在基类中,如果是private修饰的成员和函数,肯定是不能被派生类所继承。

而public和protected修饰的部分可以被继承。

一般情况下,默认是public继承,当派生类继承基类之后,继承的public部分属性仍是public,继承的protected部分属性仍然是pro.

如果是私有继承,继承之后,首先,基类中的private的部分仍然拿不到,拿到的public和pro部分属性变成private.

如果是保护继承,继承之后,拿到的public和pro部分属性变成pro.

参考原文链接:

https://www.cnblogs.com/ktao/p/8579115.html

转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.html

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。
struct能包含成员函数吗? 能!
struct能继承吗? 能!!
struct能实现多态吗? 能!!!
 

既然这些它都能实现,那它和class还能有什么区别?

最本质的一个区别就是默认的访问控制: 

默认的继承访问权限

继承上来说,struct是public的,class是private的。
你可以写如下的代码:
struct A
{
  char a;
};
struct B : A
{
  char b;
};

这个时候B是public继承A的。

如果都将上面的struct改成class,那么B是private继承A的。这就是默认的继承访问权限。 

所以我们在平时写类继承的时候,通常会这样写:
class B : public A

就是为了指明是public继承,而不是用默认的private继承。

 

你可能感兴趣的:(c++中的公有继承,私有继承和保护继承)