This is the mail archive of the egcs@egcs.cygnus.com mailing list for the EGCS project. See the EGCS home page for more information.


[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: Constructors and destructors of static variables



Adrian Trapletti <Adrian.Trapletti@wu-wien.ac.at> writes:
>
>Y::Y()
>{
>  cout << "constructor Y" << endl;
>}
>
>Y::~Y()
>{
>  cout << "destructor Y" << endl;
>}
>--------------------------------
>
>
>While compilation, shared linkage and execution yield:
>
>45: g++ -c X.cc
>46: ld -shared -o X.so X.o
>47: g++ -o main main.cc X.so
>48: main
>constructor X
>destructor X
>
>Is that what we want, or is this a bug? What about y,

BEWARE - you are using cout which is itself a static object.
It is quite possible that Y::Y() is being called before cout 
has been constructed (the C++ IO is not linked to your X.so).  
Try using write(1,"string",length).

-- 
Nick Ing-Simmons <nik@tiuk.ti.com>
Via, but not speaking for: Texas Instruments Ltd.