纯虚函数声明成private

本文是对《虚函数能为private的吗?》博客的总结。

原文地址:http://www.cppblog.com/woaidongmao/archive/2010/07/01/119022.html

本文仅用于个人技术交流,若有侵权问题请告知



两个基础知识:

1.由protected修饰的成员是只对基类自己或派生类可见的,而对于类的用户是不可见的。

2.由private修饰的成员仅基类自己可见


当一个纯虚函数声明成private时,貌似出现了一个矛盾:声明是纯虚函数说明要求需要派生类给出定义,但访问级别是private的又使这个函数对派生类不可见,这不是自相矛盾吗?

而事实是,纯虚函数声明成private也需要派生类去定义,这与protected或public类似。因为若不定义纯虚函数则不可能实例化对象。


出于对类的封装,类的设计者应该将纯虚函数设计成protected或private的,而不是根据流行而定义成public,因为唯一需要使用纯虚函数的只有类本身或其派生类。用户不应该接触到纯虚函数。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值