掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
配列を戻り値にして参照・代入するには? (ID:6671)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、最近delphiをはじめました。 が、DOSのC言語以来なので、今ひとつよくわかりません。 よろしければ、教えていただけるとありがたいです。 クラスのフィールドになっている配列を、 外部から参照および代入等をしたいのですが、 どうすればいいでしょうか? Work := Test.ReadWork(0); などとして、 Work[0] := 1; Work[1] := Work[0] + 2; のように、参照・代入等をしたいのですが¨ ソースはだいたい下記のような感じです。 (デストラクタ等は省略してます。) いろいろ調べてみたのですが、 配列、引数等、ポインタ等がなんだかわけがわからなくなってます。 よろしくお願いします。 ------------------------------------------------------- type TClass1 = class public Fwork: array of integer; constructor Create(Work: Integer); end; constructor TClass1.Create(Work: Integer); begin SetLength(Fwork, Work); end; -------------------------------------------------- type TWork = array of Integer; type TClass2 = class protected Field: array of TClass1; public constructor Create(Max: Integer; WorkSize: Integer); function ReadWork(Number: Integer): TWork; end; constructor TClass2.Create(Max: Integer; WorkSize: Integer); var I: Integer; begin SetLength(Field, Max); for I := 0 to Max - 1 do Field[I] := TClass1.Create(WorkSize); end; function TClass2.ReadWork(Number: Integer): TWork; begin Result := @Field[Number].Fwork; end; ------------------------------------------- procedure TForm1.FormCreate(Sender: TObject); begin var Work: TWork; var Test: TClass2; Test := TClass2.Create; Work := Test.ReadWork(1); end; ----------------------------------------------------------
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.