class Base{
protected:
Base(string name){
}
};
class Derived : public Base {
public:
Derived(string name) : Base(name){
}
};
In nim it is intended to be like
type
NimBase {.requiresInit, importcpp: "Base", header: "<systemc.h>", inheritable.} = object
NimDerived = object of NimBase
proc ConstructBase(T: typedesc[NimBase], name: cstring): NimBase {.importcpp: "Base(@)", constructor.}
proc ConstructDerived(T: typedesc[NimDerived], name: cstring): NimDerived =
discard ConstructBase(NimBase, name)
var d : Derived = Derived.ConstructDerived("name of derived")
After all the constructor ConstructBase is implemented in protected Base::Base C++ code and is not accessible. How can one make nim generate in C++ backend something like a code below? .. code-block:: cpp
Derived(string name) : Base(name)