ucim sa o vynimkach a neviem preco mi nefunguje tento kod, mohli by ste sa mi na to pls kuknut? lebo ked to skusam s mnou vytvorenymi a zdedenymi triedami tak mi to funguje ale ked to odvodzujem od std::logic_error nejde to, vynimku to zachyti ale pouzije nespravnu funkciu na vypis, tu v logic_error ale ja chcem aby pouzila moju
catch(std::logic_error &le)
{
std::cout<<"Catched\n";
std::cout<<le.what(); << le je typu std::logic_error a kedze metoda std::logic_error.what() nie je virtualna nezavola sa B.what() ale std::logic_error.what()
}
ja viem to s tymi virtualnymi ale myslel som ze what je virtualna , ok diky za pomoc a inak by sa to nedalo nez vytvorit si zakladnu triedu a z nej odvodzovat?
...
class logic_error : public exception
{
string _M_msg;
public:
/** Takes a character string describing the error. */
explicit
logic_error(const string& __arg);
virtual
~logic_error() throw();
/** Returns a C-style character string describing the general cause of
* the current error (the same string passed to the ctor). */
virtual const char*
what() const throw();
};
...
const znamena, ze je ju mozne volat z const objektu, a to throw() iba hovori kompilatoru, ze ta funkcia nehodi ziadnu vynimku, viac na http://msdn.microsoft.com/en-us/library ... s.80).aspx ... inak to s tou virtualnou metodou beriem s5, moze zato moja lenivost overit si fakty