TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Michael Landrus
from: Jonathan de Boyne Pollard
date: 1994-12-17 05:02:12
subject: c++ recursion

ZZ>
  > class Directory {
  > public:
  >     Directory( char * );
  >     virtual ~Directory() {}
  > };
  >
  > Directory::Directory( char *pathName)     {
  >     struct ffblk fileBlock;
  >         if ((fileBlock.ff_attrib & FA_DIREC) &&
  >             (strncmp(fileBlock.ff_name, ".", 1) != 0))
  >              {
  >               Directory(fileBlock.ff_name);
  >         }
  > }
ZZ>

  It's not particularly good design to call constructors explicitly.
  For one thing the destructors for any non-trivial data members of
  your class will not be called before the memory is reinitialised the
  with a constructor call.

  A recursive constructor like this is asking for dreadful trouble.

  Make this function an ordinary member function.

  Then use new char[] and strcat() to tack fileBlock.ff_name onto the
  end of pathName every time that you recurse.  (-:

  > JdeBP <
___
 X MegaMail 2.10 #0:
--- Maximus/2 2.02
* Origin: DoNoR/2,Woking UK (01483-725167) (2:440/4)
SEEN-BY: 12/2442 620/243 632/348 640/820 690/660 711/409 410 413 430 807 808
SEEN-BY: 711/809 810 934 942 949 712/353 515 713/888 800/1
@PATH: 440/4 141/209 270/101 396/1 3615/50 229/2 12/2442 711/409 808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.