線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3478
推到 Plurk!
推到 Facebook!

關於BCB中對class的constructor與destructor一問

尚未結案
polongkon
一般會員


發表:8
回覆:19
積分:5
註冊:2004-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-04 17:58:47 IP:210.61.xxx.xxx 未訂閱
請問  各位大大:    一個關於BCB使用上的概念問題;    在BCB中每個表單是以一個class建構,並且可在相對應的.h檔中看到對應的宣告。可是當使用者自行建構一個class時,需對class做constructe與要結束該class所需要定義相對應的destrctor,可是我在表單對應標頭檔(*.h)中卻找不到相關的member functions(constructor或destructor)宣告、定義。    這是為什麼? 是BCB對其本身定義的derive class所做的處理...或怎樣?  >.<    若是說class TForm1是繼承自TForm 的base-class這樣應該也是需要在derive class中定義constructor與destructor吧?(^^  我也不太確定,繼承類別是否會連建構與解構式同時繼承...>.<)        此外:請版主允許我脫離本發問主題額外一問 若以一個BCB產生原始表單TForm1 class宣告式來看:
class TForm1 : public TForm
{
   __published: // IDE-managed Components
   在標準C  的三個存取層級private、public、proteced這裡這個]__published 是否是在BCB本身所定義者,那他的存取層級是否等於public還是其他?  
   private:        // User declarations
   public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
};
請大大解惑 ~.~ 感激不盡 ~ ~ 萬事起頭難呀!~ ~ [不是怕不懂,是怕似懂又非懂]
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-04 20:16:18 IP:61.221.xxx.xxx 未訂閱
引言: 請問 各位大大: 一個關於BCB使用上的概念問題; 在BCB中每個表單是以一個class建構,並且可在相對應的.h檔中看到對應的宣告。可是當使用者自行建構一個class時,需對class做constructe與要結束該class所需要定義相對應的destrctor,可是我在表單對應標頭檔(*.h)中卻找不到相關的member functions(constructor或destructor)宣告、定義。 這是為什麼? 是BCB對其本身定義的derive class所做的處理...或怎樣? >.< 若是說class TForm1是繼承自TForm 的base-class這樣應該也是需要在derive class中定義constructor與destructor吧?(^^ 我也不太確定,繼承類別是否會連建構與解構式同時繼承...>.<) 此外:請版主允許我脫離本發問主題額外一問 若以一個BCB產生原始表單TForm1 class宣告式來看:
class TForm1 : public TForm
{
   __published: // IDE-managed Components
   在標準C++的三個存取層級private、public、proteced這裡這個]__published 是否是在BCB本身所定義者,那他的存取層級是否等於public還是其他?  
   private:        // User declarations
   public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
};
請大大解惑 ~.~ 感激不盡 ~ ~ 萬事起頭難呀!~ ~ [不是怕不懂,是怕似懂又非懂]
polongkon 你好:
(1)BCB 自動產生的程式碼,只會有 constructor,你如果需要 destructor 的
   話,自己加上就可以了,例如:
// Unit1.h
class TForm1 : public TForm
{
__published:        // IDE-managed Components
private:        // User declarations
public:                // User declarations
   __fastcall TForm1(TComponent* Owner);
   __fastcall ~TForm1();
};
// Unit1.cpp
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   ShowMessage("constructor");
}
__fastcall TForm1::~TForm1()
{
   ShowMessage("destructor");
}
(2)基本上你只需要關心 Form1 的 constructor/destructor 就好,因為在建構
   Form 之前會先呼叫 TForm class 所繼承的所有 class 的 constructor,解
   構的時候也一樣
(3)關鍵字 __published 基本上跟 public 是一樣的,只不過它是可以在設計期
   就被設定的 member
-- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2004/08/04 20:21:13
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
polongkon
一般會員


發表:8
回覆:19
積分:5
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-05 08:51:09 IP:210.61.xxx.xxx 未訂閱
哇!  包大哥 真的是博學多聞呀,讓後輩不得不引為標竿。  ^.^    那我大概瞭解其意涵了, 也就是說derived class的建構式是一併繼承自base class ,解構式亦同。 --- 我想應該是這意思吧?或許我去研究看看過些時日再回來檢視這個觀念。 *.^ --- 至於BCB的class __published存取層級,應該就是特別為BCB自動產生之class object宣告程式碼所設計;用以區別(和Standard c 的class之members 區別,目的在告知使用者,哪些object的宣告是由BCB所自動連結產生)BCB本身產生這些視覺、非視覺object。 這個我一知半解,我盡力釐清觀念,若各位前輩有不一樣想法務必指正小弟 感激不盡。 ^^ ~~ 剛溫唷! ----- 古道照顏色 典型在夙昔 ----- 我心嚮往呀 -------
系統時間:2024-07-04 6:46:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!