If you wish to implement an object in the C# code that the unmanaged code can use, then you can no longer use a C++ class. Only C++ code can create C++ classes. C# code cannot.
The obvious thing to do is to use COM for your interop. The C# code can both implement and consume COM objects.