- Notifications
You must be signed in to change notification settings - Fork 0
Initialization list
Martin Jean-Christio edited this page Oct 25, 2022 · 1 revision
Initialization list is used in initializing the data members of a class. The list of members to be initialized is indicated with constructor as a comma-separated list followed by a colon
Before the body of the constructor is run, all of the constructors for its parent class and then for its fields are invoked. By default, the no-argument constructors are invoked. Initialization lists allow you to choose which constructor is called and what arguments that constructor receives.
If you have a reference or a const field, or if one of the classes used does not have a default constructor, you must use an initialization list.
#ifndef SAMPLE_CLASS_H # define SAMPLE_CLASS_H class Sample { public: // data char a1; int a2; float a3; Sample(char p1, int p2, float p3); ~Sample(void); }; #endifSample::Sample(char p1, int p2, float p3) : a1(p1), a2(p2), a3(p3) { std::cout << "Constructor called" << std::endl; std::cout << "this->a1 = " << this->a1 << std::endl; std::cout << "this->a2 = " << this->a2 << std::endl; std::cout << "this->a3 = " << this->a3 << std::endl; } Sample::~Sample(void) { std::cout << "Destructor called" << std::endl; return; }#include <iostream> #include "Sample.class.hpp" intmain(void) { Sampleinstance('a', 42, 4.2f); return (0); }// Output Constructor called this->a1 = a this->a2 = 42 this->a3 = 4.2 Destructor called