home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: gnu.g++.help
- Path: sparky!uunet!sun-barr!ames!tulane!ukma!psuvax1!liblit
- From: liblit@cs.psu.edu (Benjamin R. Liblit)
- Subject: default copy constructor?
- Message-ID: <BuCs0n.5pF@cs.psu.edu>
- Sender: news@cs.psu.edu (Usenet)
- Nntp-Posting-Host: waldo.cs.psu.edu
- Distribution: gnu
- Date: Thu, 10 Sep 1992 09:09:54 GMT
- Lines: 38
-
- I would like to construct an instance of a derived class using an
- instance of its base class. The plan is to use the base class's copy
- constructor (a.k.a. "X(X&)") to initialize the inherited portions, and
- initialize the rest explicitly. Thus:
-
- struct Base
- {
- int b;
- };
-
- struct Derived : public Base
- {
- int d;
-
- Derived(const Base &shared)
- : Base(shared),
- d(1)
- {
- }
- };
-
- G++ 2.2.2 reports the following errors:
-
- try.cc: In method `Derived::Derived (const struct Base&)':
- try.cc:13: no constructor found for initialization of `Base'
-
- I had thought that *all* structures/classes/types had a default copy
- constructor defined for themselves. This error seems to hint
- otherwise. Am I confused or is G++?
-
- If I do explicitly define a copy constructor for the base class, the
- errors disappear. However, doing so in the real code I'm working on
- is not a feasible solution.
-
- Any ideas?
- --
- Ben Liblit ----- "Fais que tes reves soient plus longs que la nuit."
- liblit@cs.psu.edu -- brl102@psuvm.psu.edu -- brl102@psuvm.bitnet
-