Click to See Complete Forum and Search --> : Why it is not good code for constructor


George2
December 26th, 2007, 08:07 AM
Hello everyone,


Here is a sample from Dr. Dobb C++. In the analysis, the code is bad below.

But I do not think the code is bad,

1. if bad_alloc is thrown in new int[], we just catch it and write some log;
2. if there are any exception in B's constructor, we will also be in catch block and we could also write some log.

Why it is bad code? Any comments?

(I do not agree that there is resource leak, since if we met with bad_alloc in new int[], there is no memory allocated at all, so no root of memory/resource leak).


http://www.ddj.com/cpp/184401297


C::C(int)
try
: B(new int[n]) // horrible!
{
...
}
catch(Error &e)
{

}




thanks in advance,
George

laserlight
December 26th, 2007, 08:28 AM
This question has been answered (or an attempt has been made to answer it :p) elsewhere (http://cboard.cprogramming.com/showthread.php?t=97293).