zoukankan      html  css  js  c++  java
  • C++ 访问类别protected

    ——C++访问类别除了private、public,还有protected。

      对外部世界来说,保护成员的行为与私有 成员相似。

      对于派生类来说,保护成员的行为与公有成员相似。

      用于数据成员时的缺陷。

      用于成员函数时的优点。

      对外部世界。

      关键字protected与private相似,在类外只能用公有类成员来访问protected部分中的类成员。

      对派生类。

      关键字protected与public相似,派生类可以直接访问基类的保护成员。

      缺陷。

      使用保护数据成员可以简化代码的编写工作(派生类可以直接使用基类的protected数据成员,而数据成员以前通常是private成员,这将需要使用额外的基类公有访问函数或保护函数来查看或修改基类private数据成员,并且公有访问函数对外界开放,而protected数据成员只对派生类可见),但存在设计缺陷。

      尽管如此,若数据成员是受保护的,类被设计成只能通过成员函数才能修改该数据成员,protected属性将忽略该保护措施,允许直接访问,这实际上使protected数据成员成为了公有变量(对派生类而言)。

    void BrassPlus::Reset(double amt)
    {
        balance = amt;    // balance is protected
    }

      因此最好对类数据成员采用私有访问控制,不要使用保护访问控制;同时通过基类方法使派生类能够访问基类数据。

      优点。

      对于成员函数来说,保护访问控制很有用,它让派生类能够访问公众不能使用的内部函数。

    -----

  • 相关阅读:
    NOIP 2012 T5 借教室 [洛谷P1083]
    POJ2437 Muddy roads
    POJ2288 Islands and Bridges
    洛谷P2014 TYVJ1051 选课
    POJ1741 Tree
    CODEVS1995 || TYVJ1863 黑魔法师之门
    TYVJ1939 玉蟾宫
    TYVJ1305 最大子序和
    POJ1737 Connected Graph
    TYVJ1864 守卫者的挑战
  • 原文地址:https://www.cnblogs.com/suui90/p/13182298.html
Copyright © 2011-2022 走看看