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

怎麼複製類別的資料?

尚未結案
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-17 17:19:20 IP:218.163.xxx.xxx 未訂閱
有一個類別定義如下:
 
class A :public TObject
{
public:
      A();          int  Value;
      AnsiString  Text;
         
      void  XXX();
       ...
};    然後執行下行:
A  *a1 = new A;
A  *a2 = new A;  
a1->Value = 100;
a1->Text = "Text";    
然後我想做a2 = a1(是"資料"複製過去,不是將位址丟給a2),即意思將a1的資料全部複製到a2。因為我a2是新建立的物件,但是一開始資料需要參考跟a1的一樣。 請問有什麼方法可以這樣做。還是只有一個屬性一個屬性複製,如: a2->Value = a1->Value; ..... 發表人 - liangnet 於 2004/03/17 17:24:47
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-18 01:14:03 IP:61.221.xxx.xxx 未訂閱
引言: 有一個類別定義如下:
 
class A :public TObject
{
public:
      A();          int  Value;
      AnsiString  Text;
         
      void  XXX();
       ...
};    然後執行下行:
A  *a1 = new A;
A  *a2 = new A;  
a1->Value = 100;
a1->Text = "Text";    
然後我想做a2 = a1(是"資料"複製過去,不是將位址丟給a2),即意思將a1的資料全部複製到a2。因為我a2是新建立的物件,但是一開始資料需要參考跟a1的一樣。 請問有什麼方法可以這樣做。還是只有一個屬性一個屬性複製,如: a2->Value = a1->Value; .....
liangnet 你好:
(1)你可以在 class 的 constructor 裡面動手腳,請參考以下的範例程式碼
 Text="">Value; Text=aaa->Text;};
   int Value;
   AnsiString Text;
};       AAA *a1=new AAA;
   a1->Value=123;
   a1->Text="test";
   AAA *a2=new AAA(a1);
   ShowMessage(a2->Value);
   ShowMessage(a2->Text);
   delete a2;
   delete a1;
(2)請再依照自己的需求,自行修改
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-18 08:40:35 IP:218.163.xxx.xxx 未訂閱
RaynorPao你好: 謝謝你的回覆!但這樣還是要一項一項的複製。不過我將使用你的方法來做,這樣程式碼也比較好閱讀。 而我所希望的就是有如二個相同的struct,可以用memcpy方式將來源複製到目的。 似乎是沒辦法我最後想想這樣的,如果其中有一項是指標的話,那也會把位址給復製過去,而不會配置新的位址將資料複製過來。
系統時間:2024-05-18 19:01:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!