If you have ns2 as a child namespace of ns1, and you use ns1 classes inside a header for an ns2 class, do you need to explicitly decalre it as you would when ns1 & ns2 are unrelated?
e.g
button.h
namespace ns1
{
class Button
{
...
};
}
dialog.h
include "button.h"
namespace ns1
{
namespace ns2
{
class TestDialog
{
Button *pButton;
};
}
}
Should that be right? It seems I have to change dialog.h to be:
namespace ns1
{
----->class Button;
namespace ns2
{
But I'm not quite sure why. Do namespaces not inherit? If I don't make this change, I get linker errors about "unresolved symbol ns1::ns2:Button::...".