When separating out the implementation from the declarations in SystemC, you can do it the normal way as it is done in C++.
But when you want a constructor with more than one argument(except the default one i.e. SC_CTOR
accepts the module name) you will have to define your own constructor.
And if the module has SystemC processes(SC_THREAD
, SC_METHOD
, SC_CTHREAD
) then you will have to use the SC_HAS_PROCESS
macro to indicate that your module has process/es.
And regarding nested class it is the same thing as in C++.
I am not sure what you mean by the 3rd question.