ファイル名からクラス名を自動でつけたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yuooki
記事: 2
登録日時: 3ヶ月前

ファイル名からクラス名を自動でつけたい

#1

投稿記事 by yuooki » 3ヶ月前

VisualStudioのC++において、ファイル名から拡張子(.cppや.hpp)を
除いたものをクラス名に設定することは可能でしょうか。
プリプロセッサ命令を使えばできるのでしょうか?

例えばhoge.hにおいて

class FILE_NAME
{

}

とすると

class hoge
{

}

と置き換えてくれるようなものです。
拡張子は取り除いてほしいです。

可能なのであれば具体的なコードを掲示していただけると助かります。

Meta3

Re: ファイル名からクラス名を自動でつけたい

#2

投稿記事 by Meta3 » 3ヶ月前

そのような機能はないでしょうね

ファイルごとにクラスを割り振ることは自動化するほどのことではないでしょう?

アバター
usao
記事: 1635
登録日時: 8年前

Re: ファイル名からクラス名を自動でつけたい

#3

投稿記事 by usao » 3ヶ月前

オフトピック
Visual Studio でクラスの追加操作を行えば,デフォルトのファイル名が クラス名.cpp とかになる.
(まぁ,そういう話ではないのだろうけど)

アバター
あたっしゅ
記事: 458
登録日時: 10年前
住所: 東京23区
連絡を取る:

Re: ファイル名からクラス名を自動でつけたい

#4

投稿記事 by あたっしゅ » 3ヶ月前

__FILE__ とか使えば、できるっぽい。
具体的なコードは、ちょっと面倒そうなので...
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.rosx.net/vtuber/index.html
レスがついていないものを優先して、レスすみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたっしゅ、[MrAtassyu]
http://ameblo.jp/mratassyu/
Pixiv: 666303
手提鞄屋魚有店(てさげかばんやうおありてん)

Meta3

Re: ファイル名からクラス名を自動でつけたい

#5

投稿記事 by Meta3 » 3ヶ月前

#3
そうですねプロジェクトを右クリックしてクラスの追加をすればクラス名.h クラス名.cpp ができるから
逆の発想でできますね

アバター
あたっしゅ
記事: 458
登録日時: 10年前
住所: 東京23区
連絡を取る:

Re: ファイル名からクラス名を自動でつけたい

#6

投稿記事 by あたっしゅ » 3ヶ月前

ちょっとやってみたが挫折した...
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.rosx.net/vtuber/index.html
レスがついていないものを優先して、レスすみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたっしゅ、[MrAtassyu]
http://ameblo.jp/mratassyu/
Pixiv: 666303
手提鞄屋魚有店(てさげかばんやうおありてん)

yuooki
記事: 2
登録日時: 3ヶ月前

Re: ファイル名からクラス名を自動でつけたい

#7

投稿記事 by yuooki » 3ヶ月前

ご返信ありがとうございます。
クラス名を迷っていて、あとでいい名前が思いついたらファイル名を変更すれば
.cppにおいても、

FILE_NAME::funcA()
{
}
FILE_NAME::funcB()
{
}
...

のFILE_NAMEもhogeに自動で置き換わったらちょっと便利かなと思ったのですが・・・

参照魚
記事: 68
登録日時: 3年前

Re: ファイル名からクラス名を自動でつけたい

#8

投稿記事 by 参照魚 » 3ヶ月前

gccでmakfileを使用するなら、makefile中でコンパイラオプションに下記を与えるといけるかもしれません。

-DFILE_NAME=$(*F)

ただ、まったくもってお勧めしません。

ファイル名変更時の修正を最小化したいのなら、下記の方法もできなくはないです。

①クラスをすべてインラインで書く
クラス名の変更だけでいけるが、実装が丸見え。

②decltypeを使う
クラス名の変更とextern 宣言の変更でいける。

FILE_NAME.hpp

コード:

class FILE_NAME {
void funcA();
};
extern FILE_NAME dummy;
FILE_NAME.hpp

コード:

void_decltype(dummy)::funcA(){}
これも、まったくもってお勧めしません。

アバター
usao
記事: 1635
登録日時: 8年前

Re: ファイル名からクラス名を自動でつけたい

#9

投稿記事 by usao » 3ヶ月前

後からクラス名を変えたい というだけの話なのであれば,
VisualStudioを使っているなら,
コード上のクラス名の場所で右クリックメニューから「名前の変更」を選んで置換してもらうので良いのでは.

(わざわざ ファイル名=クラス名 とかいう謎の縛りでコード書く必要もないだろうし)

アバター
あたっしゅ
記事: 458
登録日時: 10年前
住所: 東京23区
連絡を取る:

Re: ファイル名からクラス名を自動でつけたい

#10

投稿記事 by あたっしゅ » 3ヶ月前

> VisualStudioを使っているなら,
> コード上のクラス名の場所で右クリックメニューから「名前の変更」を選んで置換してもらうので良いのでは.

そんなこと、できたのか。Visual Stadio 含めた IDE に、あまり知られていない機能、たくさんありそうだな。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.rosx.net/vtuber/index.html
レスがついていないものを優先して、レスすみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたっしゅ、[MrAtassyu]
http://ameblo.jp/mratassyu/
Pixiv: 666303
手提鞄屋魚有店(てさげかばんやうおありてん)

返信

“C言語何でも質問掲示板” へ戻る