Ok, if I define the structure before the class, I won't be able to define a member
Command* comobj;
Since comobj is a pointer, you can forward declare Command
to resolve this.
You'd do this:
class Command;
struct CommandDesc
{
std::string name;
std::string description;
Command* comobj;
};
class Command {
public:
virtual void start(CommandDesc userinput, Converter* convertobj) = 0;
virtual void help(int option) = 0;
};