C++有很多语法是高于C语言的,是在其基础上面拓展的,初学C++的人很难琢磨到其本质,因而对C++的语言总是表现的朴素迷离。为了解密其神秘的背后,自己学习C++陆陆续续2年,不断的思考总结,今天我也想分享一下我总结的一些c++看法,笔者由于能力有限,其中难免有些不知道的错误,望各位留下问题,相互交流,谢谢!
这几天被C++做UI界面控件引擎迷住了,深究了一些源代码。觉得也别有意思。下面是我本次体会最大的收获,关于public,private,protected在继承上面所表现的功能。
我们知道类的继承有三种权限依次是public,private,protected。无论是以哪一种方式继承,基类也就是父类里面的private属性均不能在派生类也就是子类里面访问。以public继承父类为例,继承的结果是子类的方法不能访问父类的private属性,因此为了让子类的public方法可以访问父类的一些属性,这个时候就再开辟了一种protected访问属性,这种属性主要是提供给子类访问的接口。因此可以总结这样说一个类里面有private封装是给本类内部使用,不对外使用以及继续访问。为了避免这个绝对化,再定义了protected这个访问属性,表现出对外不能访问,而继承的时候可以访问。有没有人是这样认为的,干嘛这么麻烦,不直接定义到public的权限里面即可。但是如果放到public里面去又破坏了C++对外封装访问的属性。因此这里又想保留封装性,又想可以让他的继承可以得到发问,就引入了protected。
下节课我会贴出相关代码,并对相关代码进行分析!欢迎广大朋友留言交流学习。