全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1396
推到 Plurk!
推到 Facebook!

关于常量定义的问题

尚未結案
mchakuna
一般會員


發表:41
回覆:45
積分:17
註冊:2004-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-29 15:18:31 IP:211.147.xxx.xxx 未訂閱
我最近写了一个基类和几个子类, 我想在基类中定义两个(整型的)常数, 而且对子类可见.     例如    
 
// file1.pas 
const 
  first  :Integer = 0;  // OK
  second  :Integer = 0; // OK
type
  TBase = class(TObject)
    // const first  :Integer = 0; // error
    // const second :Integer = 0; // error
  End;    // file2.pas
  TOS1 = class(TBase)
  end;    // file3.pas
  TOS2 = class(TBase)
  end;
上述定义中, const这样写是不对的, 我只是示意而矣. 我把const写在type以前, 编译通过, 但这样就const所定义的常量不能延展到子类中去. 我又试用property来生成一个常量的属性 如
 
type
  TBase = class(TObject)
    private
      v :Integer;
    publshed 
      property first :Integer read v default 0;
      property second :Integer read v default 1;
  End;
但这里default根本不起作用。我最后找到下述方式(比较烦)
 
type
  TBase = class(TObject)
    private
      v1, v2 :Integer;
    publshed 
      property first :Integer read v1 default 0;
      property second :Integer read v2 default 1;
    public
      constructor Create; // 在这里初始化 v1:=0; v2:=1;
  End;
但我实在想不明白难道在Delphi中, 想在类中定义一个整型常量就这么麻烦?有没有简单直接的方法? 请各位指教。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-29 15:40:42 IP:61.222.xxx.xxx 未訂閱
您寫的應該只是定義物件吧!    定義常數變數應為
type
  TBase = Record
    first  :Integer;
    Second :Integer;
  End;    使用時應為
var
  ABase : TBase =(
    first  : 0;
    Second : 1); {定義初始值}    
若使用物件定義初始值,確實要在 Create事件定義初始值。 別無他法。 除非在 implementation 之後,定義私有變數。 var V1 :Integer = 0; V2 :Integer = 1; 發表人 - wameng 於 2004/11/29 17:44:21
LargeWon
一般會員


發表:3
回覆:10
積分:2
註冊:2002-12-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-29 17:32:39 IP:211.162.xxx.xxx 未訂閱
type
  TBase = class(TObject)
    private
      v1, v2 :Integer;
    protected 
      function first :Integer;
      function second :Integer;
    End;
老王
------
老王
系統時間:2024-07-03 13:43:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!