私有继承与保护继承
程序员文章站
2022-03-08 20:23:28
...
防止扩散
一.防止扩散
•私有继承亦称实现继承,旨在于子类中将其基类的公有和保护成员私有化,既禁止从外部通过该子类访问这些成员,也禁止在该子类的子类中访问这些成员
–class DCT
{
public: void codec (void);
};
–class JPEG : private DCT
{
public: void render (void) { ... codec () ... };
};
–JPEG jpeg (...);
jpeg.render ();
jpeg.codec (); // 错误
有限地防止扩散
一.有限地防止扩散
•保护继承是一种特殊形式的实现继承,旨在于子类中将其基类的公有和保护成员进行有限的私有化,只禁止从外部通过该子类访问这些成员,但并不禁止在该子类的子类中访问这些成员
–class DCT
{
public: void codec (void); }
;
–class JPEG : protected DCT
{
public: void render (void) { ... codec () ... };
};
–class M-JPEG : public JPEG
{
public: void play (void) { ... codec () ... };
};
禁止向上造型
一.禁止向上造型
•私有子类和保护子类类型的指针或引用,不能隐式转换为其基类类型的指针或引用
–DCT* dct = new JPEG (...); // 错误
–void inverse (DCT const& dct)
{ ... }
JPEG jpeg (...);
inverse (jpeg); // 错误
–class Inverse
{
public:
DCT& impl (void)
{
return m_jpeg;
} // 错误
private:
JPEG m_jpeg;
};
下一篇: JavaMail 学习(一)