• ベストアンサー

クラスと構造体

VB6.0です。 ある画面の入力値を保持するオブジェクトを作成しようとしています。 このオブジェクトは、複数の画面やクラスの間で受け渡しすることを想定しています。 このオブジェクトは、クラスと構造体のどちらにした方がいいんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

その値の塊がどのような扱いを受けるかによります。 もしも複数のフォームから数値の入力を受け付けるならばエラーチェックとデータ管理を一連のクラスとして実装するほうが良いでしょう。 もしも1つのフォームから入力されて他のフォームでは出力のみであれば構造体にしておいたほうがパフォーマンスの面で有利です。 データの管理周りのロジックの差による不具合の混入を防ぐ意味でクラスにする意義はあるでしょう。 しかしそれだけではパフォーマンスを犠牲にするだけの意義は無いでしょう。 (ただし複雑なデータ管理が必要ならばクラスにしておくべきです。)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クラスのプロパティに構造体を使いたい。

    VB6+SP5にて開発しております。 「クラス名.構造体名.変数名 = 値」といった感じで構造体をプロパティとして使用できればと考えているのですが、単純に構造体を定義しただけでは駄目なようです。実現は無理なのでしょうか?よろしくお願いします。

  • VB .Netの構造体について

    構造体について教えて下さい。 クラスで構造体を作成しました。 クラスでIniファイルを読み込み、Formのボタンを押した処理の中で構造体を読み込みたいのですが、何をしても空白(Nothing)になります。 クラスの中では格納されたままなのに・・・。 違う場所で構造体を呼んだときは別の処理がいるのでしょうか? それともVB .Netの仕様なのでしょうか?

  • 構造体とクラスの違い

    お世話になります。 先日、C(C++もかな?)のベテランのプログラマの方が「構造体とクラスはまったく違うものだ」ときっぱり言い切っていらっしゃいました。私は、構造体にメソッドが加わったものがクラスだ、くらいな認識で、まったく違うものというよりはかなり近しい概念だと思っていたので少々驚いた次第です。 疑問が残りましたので、インターネットでいろいろ検索してみたのですが、おしなべて「構造体とクラスには共通点が多い」と説明されており、どうしても「まったく違うもの」と解釈できる文献を見つけることができませんでした。 果たして「構造体とクラスはまったく違うもの」なのでしょうか?

  • 構造体変数がないとメンバ操作できないのはなぜ?

    C言語の構造体に関して質問がありますが、structで型を作成して、構造体変数にてメンバの代入・参照をする。ということなんですが、なんでメンバ操作には構造体変数からでないといけないのでしょうか? 直接、型枠にてメンバ操作をすれば良いのに、なぜ構造体変数から操作しないといけないのでしょうか? 「クラス」や「オブジェクト」みたいに、一々ゼロから作成したり、コピペで作成しなくても済むように、このような形になっているのでしょうか? 回答の方よろしくお願いします。

  • 構造体からクラスを派生させる方法

    実は今大学に通っていてC++の授業を取っているのですが、この間構造体からクラスを派生させると言う部分の講義があったんです。ですがその回、都合で欠席してしまい方法が分かりません。周りの学生に聞いてもよく分からず本等で調べても構造体から派生させる所は載っていませんでした。どなたか「構造体からクラスを派生させる方法」を知っていたら教えて下さい(私の予想では基本クラス名を書く所を構造体名にすればいいのだと思うのですが)普通にクラスから派生させる時との違いや注意点等も分かりましたらお願いします。 まだ習い始めたばかりなので幼稚な質問になってしまったかもしれませんがよろしくお願いします。

  • VB6.0 VB.NET2003とのクラスの違い

    こんにちは VB6.0でデータベースのソフトを作成しています。 当初VB6.0はVB.NETと違い完全なオブジェクト指向言語ではないと聞いていたので、 フォームの画面ごとに検索、追加、更新、削除、入力チェック,印刷のコードを書いていこうとしました。 しかし、最近そうでもないことがわかりました。 そこで、画面ごとではなく機能ごとに検索、追加、更新、削除、入力チェック,印刷のクラスモジュールをつくり、 どこに何が書かれているかわかるようにコーディングしたいと思います。 VB.NET2003は学生のころやっていたのですが、VB6.0は最近やりだしたのでよくわかっていません。 VB6.0の入門書をみてもクラスについては2~3ページしか触れていません。 VB.NET2003にはできるがVB6.0にはできないクラスの大きな違いを教えてください。 いまのところコンストラクターとオーバーロードはできないということだけわかっています。

  • VB2008: 構造体に関連して・・・。

    VB.Net を知って60日という初学者です。 プログラマではなくデザイナ。 ですから、未だに Sub Main() で基本事項の確認中です。 フォームなどの演習は、まーだ、当分はしない予定です。 さて、質問は構造体に関するMSDN の記述です。 >構造体の要素が文字列型 (String) やオブジェクト型 (Object) などの参照型である場合は、 >データへのポインタがコピーされます。 この下り。 「なんでポインタがコピーされるんや」という疑問を抱きました。 ・文字列型にプロパティやメソッドという機能を付加するためにクラス型にした。 ・クラス型は、「・・・・」ということで参照型。と ・「・・・・」と同じ理由。 というように背景を推測しました。 この推測も単なるど素人の推測。 当を得たいるか?実に怪しい物。 仮に当らずとも遠からずとしても、肝心の「・・・・」がわかりません。 この辺りに関して、「このように考えてたらよい」という回答がありましたらお願いします。

  • 構造体の問題なのですが・・

    構造体型point の次の2次元配列を使って、入力した点がどの象限に含まれるかを数えるプログラムを作成せよ。 struct point table[5][100]; ただし、入力データの最大個数は100とする。 座標軸上の点はどの象限にも属さないとして、table[0]に格納するものとする。 また、下のような実行例を想定する。 http://www9.uploader.jp/user/kadaishu/images/kadaishu_uljp00005.jpg 今学校で構造体を習っていて、このような問題をやっているのですが どうすればいいのかよくわかりません。 どなたかご教授よろしくお願いします。

  • VBがオブジェクト指向言語でない理由

    一般的にVBはオブジェクト指向ではない(VB7でその方向へ向かう)といわれていますが、実際にVBをさわり始め、いろんな本を読んでみると、 1)クラスが作成でき、構造体と関数を1つにまとめ、メンバ(プロパティ・メソッド)を定義付けできる 2)Implementsステートメントでクラスの継承が出来る と、ある程度のオブジェクト指向言語の要件を備えているように見えます。 といっても私はJAVAもSmallTalkも知らないので、「何が真のオブジェクト指向か」というのを良く判っていないのかも知れないのですが。 しかしC++関連書などを読んでいると出てくるクラスの使用例などはVBのそれと大差なく、なぜクラスの作成もできて、継承も可能なVBがオブジェクト指向ではないのか? という疑問がわいてきました。 JAVAとは何が違うのか? これが出来ないからオブジェクト指向ではないのだ! という理由をご存じの方、回答もらえればうれしいです。

  • C,C++,C++/CLIの構造体とクラス

    C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが privateかpublicかという違い「だけ」しか全くないのでしょうか? クラスにおける value class / ref class という分類はC++/CLIのもので これについては value class の方は C言語の構造体に近いという事でいいでしょうか? ref classの方は ネイティブのC++のクラスを マネージ用にしたようなもので C++/CLIの構造体は C++のそれと同じで OKですか? そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?