zoukankan      html  css  js  c++  java
  • private、protected、public、published 访问限制(或者叫类成员的可见性)

    随顺序逐步扩大范围。

    来自万一老师的博客:http://www.cnblogs.com/del/archive/2007/12/05/983015.html

    private		//不可见。
    protected	//派生类可见。
    public		//可见。
    published	//可见。用于运行时信息。
    automated	//可见。用于兼容。
    
    //在范围以外时:{$M+}(默认)时是 published;{$M-}时是 public

    来自万一老师的博客:http://www.cnblogs.com/del/archive/2008/01/16/1041446.html

    ----------------------------------------------------------------------------------------------

    //下面说的数据成员不仅仅指方法
    TMyClass = class(TObject)
      function Fun1: string; {公共区域的数据成员在默认状态下会归于 published 区}
      //所谓默认状态就是编译指令为{$M+}, 如果是{$M-}这些数据成员会归于 public 区 
    private
      function Fun2: string; {private 区的数据成员只能在类内访问}
    protected
      function Fun3: string; {protected 区的数据成员只给自己或子孙类访问}
    public
      function Fun4: string; {public 区的数据成员是公开的, 能够给子孙类或实例化后对象公开使用}
    published
      function Fun5: string; {published 区的数据成员首先类似 public; 它同时属于 RTTI 信息}
      //譬如我们在 Object Inspector 窗口能够见到的属性、方法、事件都是属于 published 区的
    end;

    //Delphi 还有一个叫"友元类"的概念, 就是指在一个单元内的类直接是没有访问限制的, 哪怕是在 private 区.
    
    {现在的解决方案是使用 strict 保留字}
    TMyClass = class(TObject)
      function Fun1: string; 
    strict private
      function Fun2: string; {strict private 区的数据成员只能是类内部访问}
    strict protected
      function Fun3: string; {strict protected 区的数据成员只能是类或子孙类访问}
    public
      function Fun4: string; 
    published
      function Fun5: string; 
    end;
  • 相关阅读:
    cf B. Sereja and Suffixes
    cf E. Dima and Magic Guitar
    cf D. Dima and Trap Graph
    cf C. Dima and Salad
    最短路径问题(floyd)
    Drainage Ditches(网络流(EK算法))
    图结构练习—BFSDFS—判断可达性(BFS)
    Sorting It All Out(拓扑排序)
    Power Network(最大流(EK算法))
    Labeling Balls(拓扑)
  • 原文地址:https://www.cnblogs.com/del88/p/2328377.html
Copyright © 2011-2022 走看看