おはようございます。
今回質問したい内容は、
if(うんぬん)
{
かんぬん
}
等の関数に{}を付けれる様な関数をC++で自作するにはどうすれば良いのでしょうか?
今やりたいのが、
void hoge(void)
{
初期化処理内容
↓
メイン処理内容
↓
終了処理処理
}
という関数があったとして、
void main(void)
{
hoge()
{
メイン処理内容を記述
}
}
メインでこんな感じに活用できる関数を作りたいと思っております。
初期化と終了処理を色々な場所で使い回し、メイン処理を{}の中に記述出来るみたいな感じですかね…?
回答お願いします!!
{}を使った関数の作り方?
Re: {}を使った関数の作り方?
C++のifは関数ではありません。
完全に提示された仕様通りにできるかはわかりませんが、ラムダ式を使うと似たことができると思います。https://ideone.com/qjyIIe
参考:ラムダ式 - C++入門
完全に提示された仕様通りにできるかはわかりませんが、ラムダ式を使うと似たことができると思います。
#include <cstdio>
template<typename Func>
void hoge(Func f) {
puts("初期化処理内容");
f(); // メイン処理内容
puts("終了処理処理");
}
int main(void) {
hoge([]{
puts("メイン処理内容");
});
return 0;
}
参考:ラムダ式 - C++入門
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: {}を使った関数の作り方?
> 初期化と終了処理を色々な場所で使い回し、メイン処理を{}の中に記述出来るみたいな感じですかね…?
使い回しと言うのが気になりますね。どういうのを意図されてますか?
C++なら継承とか、委譲あたりをまず検討されるべきかと思います。
使い回しと言うのが気になりますね。どういうのを意図されてますか?
C++なら継承とか、委譲あたりをまず検討されるべきかと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: {}を使った関数の作り方?
すみません><
C++の継承は今勉強してる途中なのです・・・
継承を勉強すれば似たような感じの事が出来るんですかね?
そこらへんを勉強してもなお出来ないならまた質問させて頂きます!
C++の継承は今勉強してる途中なのです・・・
継承を勉強すれば似たような感じの事が出来るんですかね?
そこらへんを勉強してもなお出来ないならまた質問させて頂きます!
Re: {}を使った関数の作り方?
まず やりたいことの意味が伝わってないような気がしますが,どうなのでしょう.
オフトピック
全く同じ初期化と終了処理を行うということは,
初期化
処理A
終了処理
初期化
処理B
終了処理
…
で,処理Aと処理Bは同じ変数か何か(初期化と終了処理が必要な何か)を使いまわす,ということ?
初期化
処理A
終了処理
初期化
処理B
終了処理
…
で,処理Aと処理Bは同じ変数か何か(初期化と終了処理が必要な何か)を使いまわす,ということ?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: {}を使った関数の作り方?
私も意図を説明して欲しかったです。
場合によっては、一般的な関数で片付く問題かも知れません。
場合によっては、一般的な関数で片付く問題かも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。