delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/01/16/20:15:46

From: NOSPAMsl AT psycode DOT com (Gili)
Newsgroups: comp.os.msdos.djgpp,comp.os.os2.programmer.misc,gnu.gcc.help
Subject: C++ problem -- Over 30 people were unable to help me, can you?!
Date: 17 Jan 1998 00:51:46 GMT
Organization: Generation.NET
Lines: 27
Message-ID: <bWLoegW7sFse-pn2-d679pGp6mnys@portD23.Generation.NET>
Reply-To: NOSPAMsl AT psycode DOT com
NNTP-Posting-Host: portD23.Generation.NET
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hi,

	I created a class called File() which inherites fstream() publically 
(i.e. class File : public fstream)
I'd like to call fstream()'s constructor whenever File()'s constructor
is called. However, I have run into a major problem.
I can call the constructor in this way:
"
File::File(const char* name, int mode, int prot):
fstream(name, mode, prot)
{
  <body goes here>
}
"

	However, I'd like to use exception-handling and that isn't possible 
in the constructor initialization. What I'd like to do is to be able 
to call the fstream() constructor from the body of File()'s 
constructor. This would allow me to use exception-handling... However,
simply calling fstream() in the body seems to make C++ think I'm 
creating an fstream() variable instead of calling the constructor. 
Also, when I try using ::fstream() to call the constructor, the call 
*seems* to work but my file does not open correctly (which it does 
when fstream() is called from the constructor initialization.) Does 
anyone have any idea how this problem could be solved?

Gili

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019