トップページ > プログラム > 2016年02月14日 > VLtYVTYt

書き込み順位&時間帯一覧

25 位/241 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001000000002003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
294
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
【GPGPU】くだすれCUDAスレ part7【NVIDIA】 [転載禁止]©2ch.net

書き込みレス一覧

スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
294 :デフォルトの名無しさん[]:2016/02/14(日) 12:46:34.08 ID:VLtYVTYt
class Transaction {
public:
Transaction() { logTransaction(); };
virtual void logTransaction() { cout << "Transaction" << endl; };
virtual void logTransaction() const { cout << "const Transaction" << endl; };
};
class BuyTransaction : public Transaction {
public:
BuyTransaction() { logTransaction(); };
void logTransaction() { cout << "Buy" << endl; };
void logTransaction() const { cout << "const Buy" << endl; };
};
int main()
{
const BuyTransaction b;
return 0;
}
と書いた場合、基底&派生クラスともに非constな logTransaction()が呼ばれてしまいます。
const、非constオブジェクトの生成に関して処理を分けることは出来ないのでしょうか?
VS2015 VC++ と Mingw64 g++ 5.3.0 とも同じ動作になりました。
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
297 :294[]:2016/02/14(日) 21:17:33.93 ID:VLtYVTYt
直接的に処理を分けることは無理みたいですね。
お察しが付くかもしれませんが、上記ソースコードは
スコット・メイヤーズさんのEffectiveC++第3版の9項からのものです。
説明では基底クラスのTransaction中では void logTranslation() const = 0;
と純粋仮想関数になっているのですが、サンプルソースを適当に変えて挙動を
みていたら、このことに気が付きました。
両名の方、レスありがとうございました。
【GPGPU】くだすれCUDAスレ part7【NVIDIA】 [転載禁止]©2ch.net
487 :デフォルトの名無しさん[sage]:2016/02/14(日) 21:47:51.57 ID:VLtYVTYt
Geforceで科学技術計算なんてことあるの?
2秒間の壁や1週間も100%負荷で連続使用したら過熱して壊れそう。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。