

#include <string>

class <% this.name %> {
public:
  <% this.name %>(
@ 
foreach attr in this.listOfAttributes {
@    <% attr.class.name %> <% attr.name %>@ if !last(attr) writeText(","); @
@
}
@  );
  // virtual ~<% this.name %>();

@ 
foreach attr in this.listOfAttributes {
@ <% attr.class.name %> get_<% attr.name %>() const;
@
}
@
private:
  <% this.name %>(const <% this.name %>&); // prevent compiler-generated copy constructor

@ 
foreach attr in this.listOfAttributes {
@  <% attr.class.name %> <% attr.name %>;
@
}
@
};


