"Jochen Zeischka" <> wrote in message
news:bdrv8k$nki$...
> Hi everybody!
>
> I have a question concerning code organisation. Suppose I have the
following
> header file:
>
> #ifndef SOME_NAME
> #define SOME_NAME
>
> namespace N {
> void F()
>
> ... here comes the implementation
> }
> }
>
> #endif
>
> In this case I would think that you never ever can encounter a 'multiple
> definition' problem because
> 1) SOME_NAME is defined the first time F is defined
> 2) there is only one definition of F, so it even wouldn't be a problem
to
> define the same F a hundred times...
>
> Still, I get the error message that F is multiply defined when this header
> file is used in other header files. (And there is definitely not another
'F'
> defined in any of these header files)
>
> Can anyone help me out?
>
> Thanks!
>
> Jochen
>
>
I had the same problem. I solved it by splitting the code into two: the
declarations in a .h file and _all_ the implementations in a .cpp file, i.e.
// foo.h
#ifndef foo_h
#define foo_h
namespace n
{
class bar
{
private:
int i;
public:
bar(int);
void f();
};
}
#endif
//foo.cpp
n::bar::bar(int n) : i(n)
{
}
void n::bar::f()
{
//whatever
}
HTH,
S. Armondi
|