c++classsyntaxinitializationconstruct

what is this syntax mean is c++ "class_name: class_ptr_1(nullptr), class_ptr_2(nullptr) {}"


I am not able to understand the syntax of

class_name: class_ptr_1(nullptr), class_ptr_2(nullptr) {}

Solution

  • It seems you mean

    class_name() : class_ptr_1(nullptr), class_ptr_2(nullptr) {}
              ^^^
    

    It is a constructor definition with a mem-initializer list. That is the class data members class_ptr_1 and class_ptr_2 are initialized in the mem-initializer list.

    Here is an example

    #include <iostream>
    #include <string>
    
    struct Beginner
    {
        Beginner() : first_name( "Deepak" ), last_name( "Singh" )
        {
        }
    
        std::string first_name;
        std::string last_name;
    };
    
    int main()
    {
        Beginner beginner;
    
        std::cout << "first name: " << beginner.first_name
                  << ", last name: " << beginner.last_name
                  << '\n';
    }
    

    The program output is

    first name: Deepak, last name: Singh