delorie.com/archives/browse.cgi | search |
From: | "Rafal Maj" <maj_rafal AT poczta DOT onet DOT pl> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Odp: static |
Date: | Thu, 3 May 2001 17:24:37 +0200 |
Organization: | Academic Computer Center CYFRONET AGH |
Lines: | 52 |
Message-ID: | <9cs1p8$a0d$1@info.cyf-kr.edu.pl> |
References: | <9cre3n$4bq$1 AT info DOT cyf-kr DOT edu DOT pl> |
NNTP-Posting-Host: | d-94-53-28.cyfronet.krakow.pl |
X-Trace: | info.cyf-kr.edu.pl 988908137 10253 149.156.1.188 (3 May 2001 16:42:17 GMT) |
X-Complaints-To: | news AT cyf-kr DOT edu DOT pl |
NNTP-Posting-Date: | Thu, 3 May 2001 16:42:17 +0000 (UTC) |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Newsreader: | Microsoft Outlook Express 5.00.2615.200 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2615.200 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
After short lecture of "Symphony of C++" I realise, that I just forgot to put declaration of my static variable outside class definition ;). But, ther still is small bug in DJGPP : my first example - with missing declaration outside class and with function body inside class - is compiling without any errors or warnings ?! class cA { public : static int a; public : static void f(); }; int cA::a; // <- :) void cA::f() { a=3; } int main() { } Użytkownik Rafal Maj <maj_rafal AT poczta DOT onet DOT pl> w wiadomo¶ci do grup dyskusyjnych napisał:9cre3n$4bq$1 AT info DOT cyf-kr DOT edu DOT pl... > (Please, I need to get answer fast - if You can help me) > I didn't use static for long time, so I have totaly forgoten how to use it > :-( > > Why this code : > class cA { > private : static int a; > public : static void f(); > }; > void cA::f() { a=3; } > int main() { } > gives me this error message : > Creating: a.exe > Error: a.o: In function `cA::f(void)': > Error: a.cc(.text+0x5): undefined reference to `cA::a' > Error: collect2: ld returned 1 exit status > Why after moving body of static function inside class definition everything > is allright : > class cA { > private : static int a; > public : static void f() { a=3; }; // ok > }; > // void cA::f() { a=3; } - error > int main() { } > > How to write this small example correct ? I must have funciton body outside > of class definition, because I want this class to be splited into .cc and .h > > Thanks in advice.... > >
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |