Я только что заметил что-то, и я думаю, что это довольно странно. Это не очень важно, но это привлекает мое любопытство.C++: Throw Исключение странное поведение?
Представьте, что вы объявляете класс:
class myException : public std::exception
{
/*do stuff*/
} myExep;
Я просто заметил, что всякий раз, когда вы бросаете это исключение, что вам нужно сделать это по-разному в зависимости от того, используете ли вы myException
или myExep
:
try
{
if (/*whatever*/)
throw myException();
}
или :
try
{
if (/*whatever*/)
throw myExep;
}
Я не понимаю, почему вам нужно ()
в одном случае, а не в другом. Я использую clang ++ как компилятор, не знаю, имеет ли он какое-либо отношение к нему. Я использую -Wall -Werror -Wextra
флаги.
Это не очень важно, я просто хочу понять, что на самом деле происходит.
myException - это тип, myExcept - это объект. – Mat
Ммм, я такая глупая? Я действительно думал, что это похоже на typedef, когда вы делаете это с классом. Итак, вы можете намереваться объект таким образом? Thx для быстрого ответа. –