C++相談室 part137

■ このスレッドは過去ログ倉庫に格納されています
2018/07/14(土) 17:53:02.14ID:FOAGvAbs
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part135
https://mevius.5ch.net/test/read.cgi/tech/1522495206/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----

VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/08/13(月) 00:33:31.73ID:sn7iPKpv
>>716
寝ぼけて謎な用語の用法をしてしまった忘れてくれ
視線側からのレイの追跡だ
2018/08/13(月) 00:36:44.24ID:XxWurSAu
トイレの覗きかと一瞬勘違いしましたw
2018/08/13(月) 00:43:21.17ID:MxL7CAkg
ちゃんとミラーボールの映像から抽出しないと
720デフォルトの名無しさん
垢版 |
2018/08/13(月) 01:42:46.41ID:+YkMTMKz
遠い昔だが、いい基礎解説本があったんだがタイトルが思い出せない
98用のCのソースコードも附録でついてた
98なんかもってなかったから、Xlibで動かした記憶がある

その書籍はサーフェイスモデルもレイトレーシングも基礎から丁寧に書いてある良書だった
サーフェイスモデルについては、ものすごい力を入れて書かれてた良い本だった

ワイヤーフレームから陰面消去、さらに双三次スプラインでの補間、そしてレンダリング、バンプマッピング
さらに3次アフィン変換つかってモーションキーで動くとこまで解説してる
基礎で必要な内容は、ほぼすべて網羅されてて、バカでもチョンでも分かるように書かれてた

で、レイトレーシングはサーフェイスモデルより超簡単だからな
このスレのアホが難しいといってるだけで
むしろレイトレーシングはバカでもチョンでも分かる
2018/08/13(月) 01:48:30.63ID:GxmByJ3O
せっかく良い質問なのに、
あまり汚い言葉で、アホとかバカとかチョンとか言わなない方がいいよ…
722デフォルトの名無しさん
垢版 |
2018/08/13(月) 02:07:33.90ID:Zz4bK/+7
レイトレならこれもおすすめ
https://qiita.com/mebiusbox2/items/89e2db3b24e4c39502fe
2018/08/13(月) 02:52:34.70ID:J+SKK2b0
Oh!Xにソース付きで事細かく書いてあってだな
724デフォルトの名無しさん
垢版 |
2018/08/13(月) 03:13:41.34ID:bfksj/4u
多分これだと思う
https://www.amazon.co.jp/dp/4871481999
3冊とも名著。1と2はBASICだけど
725デフォルトの名無しさん
垢版 |
2018/08/13(月) 03:39:58.88ID:p4qIMBze
レイトレーシングに限らないけど、アルゴリズムの勉強にはLinuxが良いですよ。
2018/08/13(月) 04:00:12.36ID:3+Hm6Wut
紹介されてる本全部古い...

linuxだと何がいいの?
727デフォルトの名無しさん
垢版 |
2018/08/13(月) 04:14:38.66ID:p4qIMBze
Kernelソースが勉強になります。
2018/08/13(月) 04:15:34.47ID:J+SKK2b0
openclとグラボの勉強したら?
レイトレーシングの大量の計算するのがグラボでしょ
2018/08/13(月) 06:59:52.73ID:k7xD/gvg
>>724
アスキーの『応用グラフィックス』か。入門・実習・応用の3冊シリーズだね。
各巻のつながりは緩いから順番に読まなくてもほぼ大丈夫だけど。

確かに良い本だった気がするけど、なにぶん読んだのが昔なんで
いくらも理解できなかったわ。今ならもう少しマシだと思いたい。
大学近くの古本屋でなら見つかるかも。
2018/08/13(月) 07:05:01.34ID:JKsq+WjD
 
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉:
 「オレはIT(いっと)のことはよく知らんがぁ
   時計をたった2時間早めるだけだろぉ?
  オレなら1分あれば済ませるぞぉ!
   サマータイムの何がそんなに難しいんだぁ?」
 
システム開発現場の勇ましい言葉:
 「畏れ多くも森元帥閣下のご下命を賜った以上
   現場SEは有り難いお言葉に勇気百倍
  デスマーチとバンザイ突撃を敢行いたします!」
  
 「マラソン選手さまが涼しい時間に走るためなら
   現場SEの千人や二千人死んでも本望です!
  私たちSEの生命など、虫けらと同じです!」
 
 「畏れ多くも森元帥閣下の有り難いご下命にしたがって
   最前線システム開発現場で殉職出来るとしたら
  現場SEとしてこれに勝る喜びはありません!」
 
日本という国では
 体育会系が一番偉い(森元帥閣下、田中理事長)
  文科系がその次で(財務省、教授会)
 理科系は最底辺の奴隷とされています(現場SE)
 
2018/08/13(月) 07:26:44.37ID:WtSMvp2C
レイトレーシングがサーフェイスモデルより簡単とか
半透明物体内部の散乱表現に踏み込んだらそんな寝言は言えないんじゃ…
2018/08/13(月) 10:07:11.78ID:uSgRX9ke
みんな例外と戻り値ってどう使い分けてる?
例えば以下みたいな、ファイルからとある要素を抜き出して返す関数とかで

std::string extractHogeFromFile(const std::string& file_path)

俺だったら以下みたいにしてるけど、いまいちしっくり来てないとも思ってる

ファイルが見つからない→例外
要素が見つからない→例外
要素が見つかるけど空→空

みんな例外クラスとかはstd::exception継承して自作してるのかな?
バックトレースやコード行数とれないのが使いにくくて、javaっぽい例外クラスを自作してる
2018/08/13(月) 10:16:27.95ID:Z0vFISs/
例外は発生時の動作が遅い
2018/08/13(月) 10:17:50.65ID:gsTSbRo/
exceptionを直に継承ということは滅多にないな
system_errorがあるからerror_categoryの派生クラスを作れば大抵足りる
__FILE__ や __LINE__ のようなデバッグ情報を入れたくてマクロを作ることはあるけどね

空という概念ならoptionalはいかが?
template <typename ELEMENT>
std::optional<ELEMENT> extractHogeFromFile(std::path) noexcept(false);
2018/08/13(月) 10:36:14.97ID:uSgRX9ke
>>733
発生時は確かに遅いね
ただ、あくまでも例外的なものだけに利用をとどめておけば、そんなに発生するものでもないし、その場合は戻り値をifで見るより命令数が少なくなるから、結果的に高速になるって俺は考えてる

>>734
exception直に継承も少し疑問もってるんだけど、std::exceptionのcatchで全部取りやすいからこうしてるんだよね
...でcatchは乱暴な気がするし

ただ、調べて見た感じsystem_errorも使いやすそうね。最近開発で使えるようになったC++11だからこんなのあるの気づいてなかったわ
std::optionalとかあったんだね、ちょっと調べてみるわありがとう
2018/08/13(月) 11:20:33.79ID:NtbFT1j9
>>720
レイトレーシングが簡単なのは入り口だけ
20世紀あたりのなんちゃってレイトレーシングは楽だけど本格的にやると解決できない問題が多数出てくる
2018/08/13(月) 11:32:34.68ID:D1VtDJH7
ファイル開くのはそれ自体がすっごい遅い操作だから例外のコストなんか無視できるのと
開き損なうとそれ以降の処理が致命的な失敗になりやすい
そういう操作のエラー通知が例外に向いてる
2018/08/13(月) 11:47:23.91ID:2dORgvS5
>>733
例外発生時の速度が問題になるなら例外の使い方を見直した方がいい
2018/08/13(月) 12:31:28.26ID:Z0vFISs/
>>832に対して
例外は遅いから例外の時に使いましょう
ということを書いたつもりなんだけど

単なる終端マークとか区切りとか
そういう頻出する可能性のある用途では使っちゃダメってこと
2018/08/13(月) 12:35:13.84ID:Z0vFISs/
例外は仕組みを入れるだけで、
例外が発生しなくてもオーバーヘッドが発生する環境がほとんどなので
組み込みだとわざと無効にすることも多い

x86の64bitはオーバーヘッドが無い代わりに
例外発生時は極端に遅い
一度測定してみるとその遅さがよく分かる

そういうことがわかっていれば
どこに使うべきかがおのずとわかる
2018/08/13(月) 12:41:46.34ID:WtSMvp2C
低水準ライブラリに属するべき関数が例外みたいな高級なしくみに依存するのは美しくないキモス
システム設計とかアプリの基本設計レベルで例外の種類とcatch箇所とcatch時の処理を定義して使うなら良い
が、呼び出し側でif文を書きたくないからという理由でイミフな例外定義を行うと、結局第三者に正しく使ってもらえない
キモス
2018/08/13(月) 12:48:07.11ID:WtSMvp2C
例外のオーバーヘッドについてはこれな↓↓↓
ttp://zakkas783-blog-blog.tumblr.com/post/3870295160/c-の例外ハンドリングとパフォーマンス

>>740の通り例外処理の裏側の実装には2つの潮流があるんじゃ
2018/08/13(月) 13:03:58.12ID:u8inRKlo
制御をすっ飛ばす必然性があるほどの例外的状況に限るのが吉だろうな。
返値で返せないものを返すのに使うなら検査例外のような保証が欲しいところ。
2018/08/13(月) 13:22:39.94ID:BGH31mSy
別スレッドでの関数呼び出し階層が深すぎて安全にスレッド終了させる方法が分からない時に便利でしょ、例外。
745デフォルトの名無しさん
垢版 |
2018/08/13(月) 13:37:06.53ID:hqkLiaZ4
このパーセンテージどうやって表示してるのですか?
http://aokomoriuta.hateblo.jp/entry/2016/05/05/145810
746デフォルトの名無しさん
垢版 |
2018/08/13(月) 13:37:33.57ID:hqkLiaZ4
すいませんこれです
https://i.imgur.com/p53FZao.jpg
2018/08/13(月) 14:16:12.02ID:uSgRX9ke
前測ったときはアセンブリ言語にしてみると、戻り値ifチェックだと2命令だったのが例外使うと20命令くらいだったなぁ
2018/08/13(月) 14:27:34.65ID:uSgRX9ke
>>741
自前の文字列操作のUtilとかだと例外にするかすごいその観点で迷うんだよね

>>743
賛否両論なjavaの検査例外だけど欲しくなるときはあるね
C++の例外指定がもう少し使いやすければよかったんだが

>>744
すごく同感
2018/08/13(月) 14:39:38.06ID:gsTSbRo/
>>739
困ったことにbasic_iosはexceptionsで頼みもしてないのにEOFで例外を投げる
750デフォルトの名無しさん
垢版 |
2018/08/13(月) 14:48:44.15ID:p4qIMBze
HTTPで400番台500番台は例外投げればいいのかな。
751デフォルトの名無しさん
垢版 |
2018/08/13(月) 14:51:05.76ID:p4qIMBze
例外を投げるクラスはピッチャーって名前でいいんか?
受け取るクラスはキャッチャー?
2018/08/13(月) 15:18:30.60ID:m/ibS17x
甘めの例外を打ちかえすのはバッター
2018/08/13(月) 15:38:43.20ID:Twrhv79p
C++17では多値が返せるようになりました。
できるならレガシーを切って次へ行きたいものです。
またはstd::optionalなんてものもありますな。

std::tuple<bool,Item> Fun(){return {true,Item()};}
auto [F,I] = Fun();
2018/08/13(月) 15:41:48.16ID:Twrhv79p
あ、多値自体は返せたけど受け取って初期化できるようになったか。
ちなみにすでに実体化している変数は、std::tie(...);で受け取れます。
2018/08/13(月) 16:14:15.10ID:gsTSbRo/
>>754
prvalueでもforward_as_tupleならおk
2018/08/13(月) 16:15:13.67ID:gsTSbRo/
auto func()
{
return forward_as_tuple(123, "456");
}
2018/08/13(月) 19:17:45.97ID:Twrhv79p
お、なるほど。良いこと聴いた!
2018/08/13(月) 20:21:18.19ID:m/ibS17x
ただ元からタプルがある言語と比べたら劇的に汚い仕上がりだよね
2018/08/13(月) 21:43:01.79ID:3hlPfGdJ
http://itest.5ch.net/test/read.cgi/tech/1528382412


前スレのURL違うくね
これがただしいっしょ
760デフォルトの名無しさん
垢版 |
2018/08/14(火) 02:06:11.13ID:41LFYoyc
>>758
何と比べてる?
2018/08/14(火) 02:50:24.34ID:oCVPQ4uM
そんなに汚いかねえタプル
2018/08/14(火) 03:32:08.59ID:+lmSJTba
演算子オーバーロードっぽいものを珍重するのはやめた方がいいと思うけどね。
2018/08/14(火) 08:20:26.94ID:8F/Sy9ZI
autoでしか受けられないのがイマイチかなあ
メインの戻り値は期待する型を明示したいことがある
エラーの方が何のenumかは知ったこっちゃないからautoにしたかったりするからややこしい
2018/08/14(火) 09:31:57.53ID:oMbBbcEB
無名の共用体と似たようなもので
構造体のメンバをバラで貰えるってだけやん
2018/08/14(火) 09:44:39.80ID:fJuFDfsp
型推論のautoを見て嘔吐
2018/08/14(火) 12:12:14.83ID:9UC8tUq9
C++のメタプログラミングって実際にはどうすればあんな複雑に書けるの?
自分は出来ても階乗を求めると型の判別くらいしか出来ない
2018/08/14(火) 12:16:05.35ID:aWfB90DT
まずは脳内バッファを増やす訓練からだな
2018/08/14(火) 12:26:17.71ID:8F/Sy9ZI
関数型言語を勉強するといいよ
2018/08/14(火) 12:41:59.55ID:9UC8tUq9
>>767
脳内バッファがなぜ必要?
>>768
そうしてみる‥
Lisp読んで見る
2018/08/14(火) 13:29:44.46ID:z3VJK4Uc
>>766
メタプログラムは今ほとんどconstexprに置き換えれない?
2018/08/14(火) 14:16:24.99ID:9UC8tUq9
>>770
確かに置き換えられるんだけど、それじゃあ普通のプログラミングと変わらなくて面白みが無いと思って‥
2018/08/14(火) 14:39:49.94ID:vEMT9LA3
>>770
型でメタプログラミングするとき困らんか?
773デフォルトの名無しさん
垢版 |
2018/08/14(火) 14:41:24.25ID:UlU0qat0
>>772
もちろんtemplateも使う
2018/08/14(火) 16:24:16.29ID:oKGdiTQg
>>760
特に何とは言わないけど

return (123, "456");
とか
return 123, "456";

みたいに現行のc++ではできないタプル表現のほうがすっきりして見える (個人の感想です)
2018/08/14(火) 16:31:09.91ID:fJuFDfsp
123には副作用が無いから最適化でreturn "456";になるんじゃ…
2018/08/14(火) 16:32:25.07ID:EPC9iky2
>>775
「できない」って話だから……
2018/08/14(火) 17:01:49.73ID:zHCh+0V6
vector<object*>* list;
Fuga fuga;
Hoge* hoge;
for(int i = 0; i < 5; ++i)
{
fuga.fugaMethod(hoge->hogeMethod(list->at[i]));
fuga.fugaMethod(hoge->hogeMethod((*list)[i])); // エラー
}

リストの要素に対して全部処理をするっていうよくあるプログラムなんです。
なんですが、上の書き方だと通るのに対して、下の書き方だと「式にはクラス型が必要です。」と出ます。
vectorの要素指定はat(i)を使うか括弧で指定するかの2通り、違いは範囲チェックを行うかどうかだけという認識だったのですが……
何がまずいんでしょうか?
2018/08/14(火) 17:10:49.55ID:oMbBbcEB
list->at[i]はまずいだろ
typoか? それとも本当にそう書いているのか?
2018/08/14(火) 17:27:33.05ID:8F/Sy9ZI
typoじゃないとしたら、上は通ってるんだから
hogeMethodの引数がobjectかobject&なんだろうな
2018/08/14(火) 17:31:42.31ID:zHCh+0V6
えーっとtypoじゃないです。
何がまずいんでしょうか。ポインタだしアロー演算子で問題ないのでは。
それとhogeMethodの引数はobject*ですね。抜けてましたすいません。
2018/08/14(火) 17:49:25.24ID:K29Njy0m
listの前の*が邪魔?
2018/08/14(火) 18:00:20.07ID:5K5qKv3G
>>777
vector<string *>::iterator list;
なら理解できるのですが、
vector<string *> *list;
というのが、よくわからないのです
プログラム例では list にすでに値が入っているようですが、実際には
list をどのように初期化しているのでしょうか?
2018/08/14(火) 18:19:15.36ID:5K5qKv3G
>>777
(*list)[i]
(*list).at(i)
list->at(i)
は等価であることを確認しましたが
list->at[i]
というのは逆にダメっぽいです
https://ideone.com/ripLji

list->at[i]
がどういう文脈なのか?
コンパイラがなになのか情報をください
2018/08/14(火) 18:27:08.03ID:oMbBbcEB
>>780
何がまずいって
listはvector<object*>へのポインタ
list->atはvector<object*>::atでメンバ関数
ここまではいいが
at[i]は関数に添え字だろ

こうやってんのと同じだぜ
void func();
func[1];
2018/08/14(火) 18:32:33.03ID:9UC8tUq9
なんでメンバ関数を配列にしたいのかかが気になる
786デフォルトの名無しさん
垢版 |
2018/08/14(火) 18:35:36.38ID:zHCh+0V6
あ、すいません、確かにat(i)はtypoでしたね。
ごっちゃになってましたすいません
2018/08/14(火) 19:46:01.17ID:TB9AjC50
>>786
> 確かにat(i)はtypoでしたね。
なら普通に両方コンパイルはできるはず
エラーになる最小限のコードにしてどこかにアップして
2018/08/14(火) 20:00:34.01ID:aWfB90DT
そんでだいたい最小化してるうちに気づくんだよなw
789デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:01:24.90ID:UKq+CNIv
関数テンプレートの部分特殊化ってC++17でもできないの?
2018/08/14(火) 20:08:30.24ID:HhG+br3u
>>788
まあ本人気づくのが一番いいから
2018/08/14(火) 20:18:07.26ID:5K5qKv3G
>>790
寛大ですね…
2018/08/15(水) 13:34:49.18ID:bAZUebux
>>789
できない

# いらんだろ、多重定義で同じ目的を達成できるから
2018/08/15(水) 15:58:12.56ID:/VaqEwQY
関数の多重定義もクラステンプレートの部分特殊化でstaticメソッドを特殊化したら代替できるからイラン
2018/08/15(水) 17:45:56.30ID:bAZUebux
>>793
どゆこと?

たとえば
int abs(int);
double abs(double);
を、
クラステンプレートの部分特殊化でstaticメソッドを特殊化つーと
template <typename A, typename B>
struct num;
template <typename A>
struct num<int>
{
static int abs(int);
};
template <>
int num<int, int>::abs(int arg)
{
return arg < 0 ? -arg : arg;
}
みたいなことすんのか?
2018/08/15(水) 18:07:46.14ID:GkoLimxd
普通は関数オブジェクトにするんじゃね?auto operator()(...);
2018/08/15(水) 18:46:53.07ID:GkoLimxd
あ、余計なこと言った。
https://dotup.org/uploda/dotup.org1613077.zip
2018/08/15(水) 18:48:12.11ID:GkoLimxd
うご、投稿してモータ。
例のローグのシステムが大分できたのでなんとなく投下してみた。
汎用AIってどうやって書けばいいんや?
しかも、まだバトルシステム作ってないし。
2018/08/15(水) 19:02:43.98ID:GkoLimxd
ところで質問なんだけど、パスファインディングってサービスとして入れたほうがいいのかなぁ。。。
2018/08/15(水) 22:40:01.74ID:QxvGNpoJ
>>766です
C++テンプレートメタプログラミングという本を買ってみたのですが、この本C++BoostのMPLの解説本です
C++17がある今、この本の価値ってあるんでしょうか?
一応全部読んでみようと思ってるのですが
2018/08/16(木) 07:25:03.80ID:t6OwQxX1
>>799
> 一応全部読んでみようと思ってるのですが
読んでみてから判断すれば?
2018/08/16(木) 08:19:40.35ID:NceGg90N
多分聞きたいのはこれ読んだらオラついていいですか?ってことだと思う。
2018/08/16(木) 08:50:47.25ID:MDl/UAh8
>>800
>>801
すみません
Boostを使わず、mplを使わないのでメタプログラミングするのが目的なので、それがこの本を読んで可能なのか?という質問の趣旨です
2018/08/16(木) 09:51:57.97ID:t6OwQxX1
>>802
> Boostを使わず、mplを使わないのでメタプログラミングするのが目的
そんな明確な目標あるのになんでこんな本買うかなぁ
ちょっとググればこんな意見が見つかるだろうに…

ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い!
http://d.hatena.ne.jp/eldesh/touch/20100412/1271090614
2018/08/16(木) 10:25:53.58ID:f3MTrlhW
>>802
メタプログラミングを活用すればこういうことも出来得るという事例集として見れば無駄ではないと思うが、
それを読んでメタプログラミングが出来るようになるかというと否だと思う。
2018/08/16(木) 12:02:41.09ID:MDl/UAh8
>>803
この本を買ったのは高橋晶のC++11対応のテンプレートテクニックって本を読んで、巻末に本の紹介があって、メタプログラミングについて知りたいならこの本を読むべきって書かれてあって、読むことにした
そのブログはすでに読んである
>>804
メタプログラミング自体はどうすれば出来るだろうか?
2018/08/16(木) 12:37:43.15ID:jOS7jxfN
魔除けとして重宝している
2018/08/16(木) 12:41:22.12ID:lxkNuozk
> そのブログはすでに読んである
私はバカです
って言われても…
2018/08/16(木) 13:19:15.31ID:MDl/UAh8
>>806
売ることにします‥
>>807
もう日本人に頼るのは辞めました
そもそもWG21から情報を検索したほうが有意義かも
これからは日本語のプログラミング書籍は買わない方がいいって教訓になりました
2018/08/16(木) 13:24:07.84ID:AI90/kCO
捨てゼリフ来たね
そろそろご退場かな
総員塩の用意
2018/08/16(木) 13:27:57.29ID:MDl/UAh8
>>809
いやだって日本人でC++やってる人少ないじゃないですか(´・ω・`)
2018/08/16(木) 13:47:10.99ID:f3MTrlhW
>>810
んなこたーない。
2018/08/16(木) 14:10:22.64ID:yO9+GMaw
「少ない」に比較がついてないから何とも言えない
2018/08/16(木) 14:34:47.46ID:jOS7jxfN
やっぱPerl人口が一番多いと思うのねん
その次がPHP
2018/08/16(木) 16:39:09.24ID:TxXnQ6gb
英語をスラスラ読めるなら「遅い・高い・分かりにくい」の
和訳版を買うことはないわな。
原書ならPDF版がタダでネット公開されてたりするし。
2018/08/16(木) 20:44:21.68ID:JF8AnYsh
>>799
前半とこどこBoost.MPLの設計理念とかどう実装されてるかとか書いてあるから、そこは参考になると思う
後半のTMP関連のテクニックはおそらく求めているものではないかと
ExpresionTemplateの実装にあまり踏み込まないけど、どのように誤用されているかは少し参考になった
2018/08/17(金) 11:29:50.85ID:lqMuboYf
https://wandbox.org/permlink/TC3VtzZ4Dd53Z1Y4
こういうコード書きました。
UIはとりあえず置いといて、Jsonの構造ってこんな感じでいいのでしょうか。
ご意見あったら教えてください。
2018/08/17(金) 11:54:52.92ID:BEBC5Dle
あの初歩的な質問で申し訳ないんですけど、クラスのメンバ関数のことです
例えばAってクラスがあって、hogehogeって関数があったとします
それでhogehogeは内部で関数を3つ呼び出す。ざっとこんなイメージです

A.h
class A
{
public:
void hogehoge();
}

A.cpp
void A::hogehoge()
{
x();
y();
z();
}

main.cpp
main()
{
A a;
a.hogehoge;
}

んでこの場合の関数x() y() z()なんですけどクラスAのメンバ関数にすべきなんでしょうか。
それとも単にA.cpp内に関数書くだけでいいんでしょうか。
x()y()z()はhogehoge以外から呼び出されることはありません。
自分は前者だと思うんですが、参考にしろと渡された前任者(今いない)のコードだとなんでもかんでもメンバ関数です。
よろしくおねがいします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。