2

この問題は、次のようなコードで発生します。

#include <cstdlib>
#include <iostream>
#include <stdexcept>

using namespace std;

int main(int argc, char** argv) {

try {
    throw  runtime_error("Message");
} catch (exception e) {
    cout << e.what();
}
return 0;
}

登場することを期待Messageしています。しかし、結果は でしたstd::exceptionvirtual functionsサブクラスはスーパークラス参照から呼び出せると思いました。どうすればそれを修正できますか?

4

1 に答える 1

7

C++ では、参照と値のコピーが明示的に区別されます。使用する

catch (const std::exception& e) 

値の代わりに参照でキャッチします。

于 2013-01-31T16:55:35.503 に答える