delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-bounces using -f |
From: | "Robert Hardy" <maprph AT bath DOT ac DOT uk> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | BUG? : Constructing member objects on-the-fly inside constructors. |
Date: | Fri, 11 Jan 2002 10:36:57 +0000 (UTC) |
Organization: | BT Openworld |
Lines: | 71 |
Message-ID: | <a1mf88$4b3$1@knossos.btinternet.com> |
NNTP-Posting-Host: | host213-122-35-39.btinternet.com |
X-Trace: | knossos.btinternet.com 1010745417 4451 213.122.35.39 (11 Jan 2002 10:36:57 GMT) |
X-Complaints-To: | usenet AT knossos DOT btinternet DOT com |
NNTP-Posting-Date: | Fri, 11 Jan 2002 10:36:57 +0000 (UTC) |
X-Newsreader: | Microsoft Outlook Express 5.50.4133.2400 |
X-MSMail-Priority: | Normal |
X-Priority: | 3 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.50.4133.2400 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
I have a class contains_int that contains only an integer value. I have a class contains_contains_int that contains only an object of class contains_int. Here is my code: #include<iostream> class contains_int { int i; public: contains_int(int ii): i(ii) {} void printme() {cout << "( int: " << i << " )"; } int getme() {return i;} }; class contains_contains_int { contains_int c_i; public: contains_contains_int(contains_int c_ii): c_i(c_ii) {} void printme() {cout << "( c_i : "; c_i.printme(); cout << " )"; } }; class contains_contains_contains_int { contains_contains_int cc_i; public: contains_contains_contains_int(contains_contains_int cc_ii) : cc_i(cc_ii) {} void printme() {cout << "( cc_i : "; cc_i.printme(); cout << " )"; } }; int main() { int a=7; contains_int b(a); contains_contains_int c(b); contains_contains_contains_int d(c); cout << " a = ( " << a << " )" << endl; cout << " b = "; b.printme(); cout << endl; cout << " c = "; c.printme(); cout << endl; cout << " d = "; d.printme(); cout << endl; contains_contains_contains_int x( contains_contains_int ( contains_int(10) )); cout << " x = "; x.printme(); cout << endl; //line A } My issue is that I would like to create objects like x -- constructing its member objects on-the-fly as it were -- rather than having to build them up line-by-line as I do with the series a, b, c and d. DJGPP gives me the following error message: In function `int main()': Error (line A): request for member `printme' in `x', which is of non-aggregate type `contains_contains_contains_int ()()' I originally posted this query in alt.comp.lang.learn.c++ (it should still be there if you want to see the replies) and other people in the group tried the code on their compilers and it worked okay. Perhaps this is a problem with DJGPP? Thanks, Robert.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |