#include #include namespace jmj { class A { public: A () {} void foo () {} std::string to_string () { return "A"; } private: int x; }; typedef A my_a; } namespace jmj { class my_a; } int main(int argc, char** argv) { jmj::my_a a; a.foo(); std::cout << a.to_string() << std::endl; return 0; }