Article View: comp.os.os2.programmer.misc
Article #311Re: C++ problem -- Over 30 people were unable to help me, can you?!
From: idanan
Date: Sun, 18 Jan 1998 00:00
Date: Sun, 18 Jan 1998 00:00
45 lines
2308 bytes
2308 bytes
In <DlpnOhDvP3gv-pn2-zQX4fq1HhHLx@du36-2.ppp.algonet.se>, bjorn@algonet.se (Bjorn Fahller) writes:
>On Sat, 17 Jan 1998 00:51:46, NOSPAMsl@psycode.com (Gili) wrote:
>
>> 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?
[CUT]
C++ has a way of doing this. The proper syntax is:
File::File(const char* name, int mode, int prot) try :
fstream(name, mode, prot)
{
<body goes here>
}
catch (<exception class goes here>)
{
<exception handling code here>
}
- Itai
idanan@ibm.net
Technical Details
Message-ID:
<34c233a4.0@news1.ibm.net>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<bWLoegW7sFse-pn2-d679pGp6mnys@portD23.Generation <DlpnOhDvP3gv-pn2-zQX4fq1HhHLx@du36-2.ppp.algonet.se>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 11318c,8dafc9e0bf3f0357 X-Google-Attributes: gid11318c,public X-Google-Thread: 10891a,8dafc9e0bf3f0357 X-Google-Attributes: gid10891a,public X-Google-Thread: 11307a,8dafc9e0bf3f0357 X-Google-Attributes: gid11307a,public From: idanan@ibm.net Subject: Re: C++ problem -- Over 30 people were unable to help me, can you?! Date: 1998/01/18 Message-ID: <34c233a4.0@news1.ibm.net> X-Deja-AN: 317099999 References: <bWLoegW7sFse-pn2-d679pGp6mnys@portD23.Generation <DlpnOhDvP3gv-pn2-zQX4fq1HhHLx@du36-2.ppp.algonet.se> Reply-To: idanan@ibm.net Organization: IBM.NET Newsgroups: comp.os.os2.programmer.misc,gnu.gcc.help,comp.os.msdos.djgpp