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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [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
記事: 1887
登録日時: 11年前

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

#3

投稿記事 by usao » 3年前

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

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

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

#4

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

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

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

Meta3

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

#5

投稿記事 by Meta3 » 3年前

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

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

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

#6

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

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

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

yuooki
記事: 2
登録日時: 3年前

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

#7

投稿記事 by yuooki » 3年前

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

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

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

参照魚
記事: 109
登録日時: 6年前

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
記事: 1887
登録日時: 11年前

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

#9

投稿記事 by usao » 3年前

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

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

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

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

#10

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

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

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

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

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