Click here to Skip to main content
15,922,015 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionMultiple includes Pin
Shy Agam29-Aug-10 21:49
Shy Agam29-Aug-10 21:49 
AnswerRe: Multiple includes Pin
Cedric Moonen29-Aug-10 22:38
Cedric Moonen29-Aug-10 22:38 
AnswerRe: Multiple includes Pin
CPallini29-Aug-10 22:46
mveCPallini29-Aug-10 22:46 
GeneralRe: Multiple includes Pin
Shy Agam29-Aug-10 23:06
Shy Agam29-Aug-10 23:06 
GeneralRe: Multiple includes Pin
Cedric Moonen29-Aug-10 23:53
Cedric Moonen29-Aug-10 23:53 
GeneralRe: Multiple includes [modified] Pin
Shy Agam30-Aug-10 0:10
Shy Agam30-Aug-10 0:10 
GeneralRe: Multiple includes Pin
Cedric Moonen30-Aug-10 0:51
Cedric Moonen30-Aug-10 0:51 
GeneralRe: Multiple includes Pin
Richard MacCutchan30-Aug-10 2:39
mveRichard MacCutchan30-Aug-10 2:39 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 9:42
Paul Michalik30-Aug-10 9:42 
GeneralRe: Multiple includes Pin
Richard MacCutchan30-Aug-10 21:50
mveRichard MacCutchan30-Aug-10 21:50 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 23:30
Paul Michalik30-Aug-10 23:30 
GeneralRe: Multiple includes Pin
Richard MacCutchan31-Aug-10 0:41
mveRichard MacCutchan31-Aug-10 0:41 
GeneralRe: Multiple includes Pin
Shy Agam30-Aug-10 21:20
Shy Agam30-Aug-10 21:20 
GeneralRe: Multiple includes Pin
Emilio Garavaglia30-Aug-10 20:18
Emilio Garavaglia30-Aug-10 20:18 
AnswerRe: Multiple includes [modified] Pin
Shy Agam30-Aug-10 22:45
Shy Agam30-Aug-10 22:45 
GeneralRe: Multiple includes Pin
Paul Michalik30-Aug-10 23:49
Paul Michalik30-Aug-10 23:49 
GeneralRe: Multiple includes Pin
Shy Agam30-Aug-10 23:50
Shy Agam30-Aug-10 23:50 
GeneralRe: Multiple includes Pin
Aescleal31-Aug-10 0:30
Aescleal31-Aug-10 0:30 
GeneralRe: Multiple includes Pin
Tim Craig31-Aug-10 8:59
Tim Craig31-Aug-10 8:59 
GeneralRe: Multiple includes Pin
Aescleal31-Aug-10 9:13
Aescleal31-Aug-10 9:13 
GeneralRe: Multiple includes Pin
Paul Michalik31-Aug-10 12:35
Paul Michalik31-Aug-10 12:35 
GeneralRe: Multiple includes Pin
Tim Craig31-Aug-10 13:12
Tim Craig31-Aug-10 13:12 
GeneralRe: Multiple includes Pin
Paul Michalik31-Aug-10 21:29
Paul Michalik31-Aug-10 21:29 
GeneralRe: Multiple includes [modified] Pin
Paul Michalik31-Aug-10 6:28
Paul Michalik31-Aug-10 6:28 
No! You may declare your static class members only once. What you have missed, is the definition (which also has to be unique), and it needs to be provided outside of the class, for non-const and non-trivial objects.

// in AStuff.h
class AStuff {
public:
 void Hello() {
  // ...
 }
};

// in A.h
class A {
public:
 static AStuff sStaticAMember; // <-declaration
};

// in A.cpp
AStuff A::sStaticAMember; //<-definition (required!)


The constructor for A::sStaticAMember will be called by the runtime (dynamic initialization) if the instance is used by the program. You do not (really) have the control over when this is going to happen, neither when the destructor is going to be called. This is one of the reason why the poster above damned "statics" ... and basically I have to agree with him.

Are you using C# otherwise? If yes, then forget about the comfort of static class objects and their well defined initialization there - and enter one of the many dark zones of c++. I assume you will probably run into the problem of undefined order of initializations of your non-local objects, but we stand ready to help Smile | :)

modified on Tuesday, August 31, 2010 12:56 PM

GeneralRe: Multiple includes Pin
Shy Agam31-Aug-10 21:27
Shy Agam31-Aug-10 21:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.