Delegating Constructors
Delegating constructors allow the default constructor of a class to call the parameterized constructor by default.
This is somewhat unintuitive, but has a lot of applications in frameworks that generate components dynamically down inside their operation, but cannot take the arguments at that managerial level.
class SpecialWindow : public Gtk::Window {
public:
// 1. Parameterized Constructor
SpecialWindow(std::string inst_name, int inst_val)
: name(inst_name), val(inst_val) { // ... }
// default /w delegating constructor
SpecialWindow() : SpecialWindow("item 1", 100)
{ //... }
};
int main() {
auto app = Gtk::Application::create("org.gtkmm.examples.base");
return app->make_window_and_run<SpecialWindow>(argc, argv);
}
I guess "everybody knew" that already, but I didn't.
https://redd.it/1wssxsq
@r_cpp
Post #25737
5