プロが教えるわが家の防犯対策術!

お世話になります。

C++で教えてください。
複数のクラスで共通で使うクラスを作成したいのですが、
そのようなクラスは、どのような名前にした方が、よいのでしょうか?
一般的な命名規則でいいので教えて頂けませんか?
※定義を集めた.hファイルはdefien.hなどのような一般的な名前

また、そのような関数クラスは、どのクラスを親にしたらよいのでしょうか?
※dlg→ダイアログクラスではないのは、わかるのですが。。。一般的な
 汎用的に使えるクラスだとありがたい他です。

何卒宜しくお願い致します。

A 回答 (2件)

> 複数のクラスで共通で使うクラスを作成したいのですが、


> そのようなクラスは、どのような名前にした方が、よいのでしょうか?

数ある共通クラスに”共通”する名前をつけたいということでしょうか?

であれば、これには、common, utilitity といった単語、あるいはそれをcmn、utilと
いうように略して共通クラスの名前の先頭または末尾につけることが多いです。
(こういうのを接頭辞とか接尾辞といいます)
例えば、"CmnDialog "のように。
#老婆心ながら、utilityとかcommonとかいう英単語の意味は調べてから使ったがいいですよ。
#utilityでないものにutilityと名づけてバカにされてるプロジェクトは割りと多かったりしますから。

ただ、C++ならば、接頭辞/接尾辞ではなく、名前空間を使うことをオススメします。
例えば、common::hoge_classといったような感じで。

> また、そのような関数クラスは、どのクラスを親にしたらよいのでしょうか?

ちなみに、

> ※定義を集めた.hファイルはdefien.hなどのような一般的な名前

ここで挙げられた、"define.h"のような、内容を表さない意味のない名前は、名前の付け方に失敗している、一般的な例です。

また、C/C++では、No.1さんの回答にあったアッパーキャメルケースだけでなくスネークケース
(quoted_printable_encodeとか)も一般的です。JavaだとNo.1さんの仰るとおりですけどね。
    • good
    • 0

> 複数のクラスで共通で使うクラスを作成したいのですが、


> そのようなクラスは、どのような名前にした方が、よいのでしょうか?
この質問内容だけでは「アッパーキャメルケース(下記参照)な名前にしなさい」以外何とも言えません。
http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3% …

その共通して使うクラスが何らかのプロパティを持っているならば、その持っているプロパティすべてをまとめたものを何と呼ぶのが適切かをもとに名前をつけるべきです。
また、Java のようなクラスの外には何も置けないオブジェクト指向言語と違って、C++ ではクラスの外に関数を置けます。したがって、単なる関数クラスを作るならばそれよりも普通の関数を複数まとめた状態で作った方がよいこともあります。無論、行う処理を動的に変化させたい場合など、メソッドしかない状態でもクラスにまとめるべき場合もあるため、共通化したい部分を普通の関数群にするには慎重な考慮が必要です。その結果やはりクラスとしてまとめるべきとなったなら、そのクラスに任せる処理群をまとめて何と呼ぶかでクラス名を付けるべきです。

> また、そのような関数クラスは、どのクラスを親にしたらよいのでしょうか?
禅問答めいた言い方になりますが、親になるべきクラスを親にすべきです。もしそのようなものが無い、即時に明快なものが思いつかないのであるのなら、親クラスは不要です。
# Java だったら冗談で Object クラスと答えるところだけどねぇw
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています