- ベストアンサー
クラスについて
C++を勉強中です。 本にかいてあるクラスの使い方はわかったのですが 自分でプログラムを作成していて 疑問に思ったことがあります。 クラスの変数をパブリックとかプライベートに しますよね。 使う意味はわかるし必要性もわかるのですが、個人で作っている時、 プライベートの変数って作っているのですか? オールパブリックのほうが作りやすいと思ってしまいます。 またそれならクラス自体必要ではなくなってしまいます。 ここをどう理解していけばいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- graphaffine
- ベストアンサー率23% (55/232)
- liar_adan
- ベストアンサー率48% (730/1515)
関連するQ&A
- クラスの分割
画像処理のプログラムを書いているのですが、1つのクラスに必要な変数と関数をぶち込んだため、変数20~、関数20~、2000行くらいのクラスになっています。 このままでは見辛いので、クラスを処理ごとに分割して見易くしたいのですが、各関数でいくつか共通の変数を使用しているため上手く分割ができなくて困っています。 データのみのクラスを継承した子クラスを3つ作ってみたらインスタンスが3つできてしまい意味がありませんでした。 ↓の図に示すようなクラスを作りたいのですが、いくつか質問をさせてください 共通データクラス / | \ 子クラスA 子クラスB 子クラスC 1、変数20~、関数20~、2000行くらいのクラスは普通でしょうか?(分割する必要がありますか?) 2、↑の図はクラスの作り方として問題がありますか? 3、2で問題がない場合実現する方法として、仮想継承、関数に共通データのポインタを渡す以外に方法があるかどうか まだまだC++を勉強中で、便利な構造体程度にしか使えていませんが、どなたかご教授お願いします。
- ベストアンサー
- C・C++・C#
- VC#2010 クラスの実体化について
こんにちは、 現在の環境はWindows7でVisualStudio2010を使用しています。 最近 Cシャープを勉強し始め、疑問に思い質問させていただきました。 クラスを作成し、そのクラスの実体化を行わないで、 クラスのメンバ変数やメンバ関数などがエラーなく使えてしまいました。 C++のときはビルドエラーになっていたのにCシャープでは 実体化を行わなくてもよいと言いうことですか? 回答お願いします
- 締切済み
- その他(プログラミング・開発)
- クラス型のメンバ変数について
クラス型のメンバ変数って、どういったメリットがあるのでしょうか? 以下のプログラムは疑問点の部分だけ書いたプログラムです。 class Caaa { (内容) }; class Cbbb { protected: Caaa m_bbb; } 上のプログラムの、 Caaa m_bbb; の部分が、どういった意味(使い道)があるのかわかりません。 int型やvoid型のメンバ変数は分かるのですが、他のクラスの型をもったメンバ変数はどういった意味があるのでしょうか。 どなたが教えてください。
- 締切済み
- C・C++・C#
- クラス変数とクラスメソッドを教えてください
みんさんどうもすみません。クラス変数とクラスメソッドなんですが、 何回本を読んでもイマイチ理解できません。クラス変数とクラスメソッド を使うことでなにがメリットなのか教えてください。例えばクラスメソッド の場合はメソッド名の前にオブジェクト名をつけなくていいとか、そういう 便利さのために使うんでしょうか?どうもまだ完全に理解できていないの で詳しい方いらっしゃったらどうか教えてください。よろしくお願いします。
- ベストアンサー
- Java
- C++のクラス設計について
Webや書籍をあたってみたのですが、なかなか解決しないので こちらで相談させいただこうと思い立ちました。 C++で書かれたプログラムを解析しているのですが、 ドキュメントは外部仕様書のみであとはソースコードだけ、という状態です。 コメントもほとんど書かれていないコードについて、リバースエンジニアリングを する必要があり、手始めにクラス図を作成してみました。 すると、複数のクラスでメンバ変数が重複しているのです。 クラスAに、クラスB・C・Dの変数の一部が宣言されていて、 クラスAとクラスBの間で重複している変数はすべてどちらのクラスもprotectedのstatic、 クラスAとクラスC・Dの間で重複している変数はクラスAではprotectedのstatic、 C・Dではprivateです。 クラスBとC・Dは継承関係にありますが、メンバ変数の重複はありません。 クラスAと他クラスは継承関係がなく、メンバ変数が多数重複しています。 クラスAの変数は20個ほどありますが、9割以上がB・C・Dで宣言されている変数と 重複している状態で、かつstaticのprotectedです。 Cはわかるのですが、C++はほとんど書いたことがありません。 アンチパターンなどもあたってみたのですが、上記のような設計についての記述は 見つけられませんでした。こういったクラス間での変数重複は「あり」なのでしょうか? これで情報が足りているかわかりませんが、何卒よろしくお願い致します。
- 締切済み
- C・C++・C#
- クラス別ネットワーク数について
こんにちは。いつもお世話になっております。 今まで当然と思っていたことに疑問が湧いてしまいました。 IPアドレスのクラスによって、ネットワーク数、ホスト数が 異なりますが、 ◆クラスAの場合 ネットワーク数は、2^7-2=126 ですが、マイナス2の意味は 0と127が使用できないからだと理解していました。 ◆クラスBの場合 ネットワーク数は、2^14-2=16,382 と同じ計算方法を している本ばかりなのですが、自分が研修を受けたときの テキストを開くと「クラスBとC の場合は、使用できない 値はありません」と書いてあります。 つまり、2をマイナスする必要はないということです。 どちらが正しいのでしょうか? ホスト数に関しては、オールゼロ、オール1を使えないので 常にマイナス2ということは、分かります。 よろしくお願い申し上げます。
- 締切済み
- その他(ITシステム運用・管理)
- ユーザー定義関数とクラスの違いとは?
間違えて違うカテゴリーに質問してしまったので、 そちらを削除して、質問させていただきます(レスも幸いなかったため)。 PHPを勉強して1ヶ月の初心者です。 ホームページを作ろうとして、本に書いてあったプログラムを元に、 付け足したり、削ったりしていました。 そして、プログラムが長くなってきたので、外部ファイルに処理を分割してみました。 どの本にも、「クラス」「オブジェクト指向」という言葉が強調されていたので、 とりあえずクラスにしてみました。 しかし、クラスの中で処理をした変数を取り出すのが手間に感じます (クラス内では「$this->変数名」、クラス外では「$クラス名->変数名」と書く手間が・・・)。 本の中には、クラスを使わずに、 ユーザー定義関数のみのfunctionをまとめた外部ファイルを 作成している例が多い気がします。 そこで質問なのですが、 処理を分割して外部ファイルにするとき、 「メソッドをまとめたクラス」にした方がいいのでしょうか? それとも、「ユーザー定義関数をまとめたもの」にした方がいいのでしょうか? また、「こうゆう場合は、クラスにした方がいい」「ユーザー定義関数にした方がいい」などの 条件がありましたら、教えていただきたいです。 本やネットを調べても、使い分けについて書かれているページがなく、 今後の作成のためにも、ぜひ知っておきたいです。 すべてクラスにした方が今後よいようでしたら、全部クラスのままで作れるよう、 慣れていきたいとも思ってもいます。 よろしくお願いします。
- ベストアンサー
- PHP
- クラスモジュールについて
VBを勉強し始めた初心者です。 標準モジュールについては何とかわかるようになってきましたが、クラスモジュールについては、ほとんどわかりません。 クラスモジュールの意味や、プログラム法について初心向けにわかりやすく書いた本等がありましたら、ご紹介下さい。
- ベストアンサー
- Visual Basic
- Java:クラスのインスタンスを配列の要素にする?
問題集で次のプログラムを見掛ました。 A[] array = {new B(), new C()}; クラスA型の配列変数arrayにクラスBとクラスCのインスタンスを要素として代入しています。 このような配列を作成した場合、具体的にどのような使い方があるのでしょうか? 簡単なプログラムを書いて頂けると嬉しいです。 よろしくお願いします。
- 締切済み
- Java
お礼
回答ありがとうございます。 非常にわかりやすい説明ですね。 ルールは自分なので...そうなんです。 そういうことがいいたかったのです。