0
я в настоящее время изучение исключений обработки, а вот часть моего кода:Compiler ошибка при метании исключение
//vector.cpp
#include "vector.h"
Vector::Vector(int s)
{
if (s < 0) throw length_error{};
elem = new double[s];
sz = s;
}
вот код, который я пытаюсь проверить исключение по:
try{
Vector v(-27);
}
catch (length_error)
{
cout << "There was a negative size for your vector.\n";
}
catch (bad_alloc)
{
cout << "The memory was not allocated properly.\n";
}
Когда я пытаюсь запустить мое приложение, я получаю следующее сообщение об ошибке:
error C2440: '<function-style-cast>' : cannot convert from 'initializer-list' to 'std::length_error'
Где ошибка?
EDIT: Код был скопирован с C++ Programming Language Book.
см. Мое редактирование! почему автор может написать это так, и я не могу? :)) – Victor
Я бы сказал, что ваш компилятор неверно доказывает автору, если действительно ваш код является * точной * копией из этой книги. Или, автор знает C++ лучше, чем ваш компилятор. – stakx
Вы посмотрели, кто автор моей книги? – Victor