C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Constructor Overloading in C++ Different Ways to Compare Strings in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++

Initialize Array of objects with parameterized constructors in C++

Initialize Array of objects with parameterized constructors in C++

When a class is defined, only the specification for the object is specified; no memory or capacity is allocated. You need to build objects to use the data and access functions specified in the class.

Syntax:

ClassName ObjectName[number of objects];

Specific methods for initializing the Parameterized Constructors list of objects:

Using malloc(): Use malloc() method to avoid calling a non-parameterized constructor. The "Malloc" or "Memory Allocation" method in C++ is used to dynamically allocate the specified size of a single large block of memory. It returns a sort void pointer that can be thrown into a pointer of any kind.

#include <iostream>
#define P 5
using namespace std;
class Test
{
    // private variables
    int a, b;
public:
    // parameterised constructor
    Test(int a, int b)
    {
        this->a = a;
        this->b = b;
    }
    // function to print
    void print()
    {
        cout << a << " " << b << endl;
    }
};
int main()
{
    // allocating dynamic array
    // of Size N using malloc()
    Test* arr = (Test*)malloc(sizeof(Test) * P);
    // calling constructor
    // for each index of array
    for (int k = 0; k < P; k++)
          {
        arr[k] = Test(k, k + 1);
    }
    // printing contents of array
    for (int k = 0; k < P; k++)
           {
        arr[k].print();
    }
    return 0;
}

Output:

Initialize Array of objects with parameterized constructors in C++

Using Double pointer: The pointer to a pointer is a set of complex indirect or a pointer chain. A pointer typically holds the address of a variable. When we describe a pointer to a pointer, the first pointer contains the second pointer 's address, which points to the location containing the real value, as shown below. Now we can allocate a number of blocks to be assigned, so we have to call the parameterized constructor to initialize for each index using the new keyword.

#include <iostream>
#define T 10
using namespace std;
class Test {
          // private variables
          int s, t;
public:
          // parameterised constructor
          Test(int s, int t)
                   : s(s), t(t)
          {
          }
          // function to print
          void print()
          {
                   cout << s << " " << t << endl;
          }
};
int main()
{
          // allocating array using
          // pointer to pointer concept
          Test** arr = new Test*[T];
          // calling constructor for each index
          // of array using new keyword
          for (int i = 0; i < T; i++) {
                   arr[i] = new Test(i, i + 1);
          }
          // printing contents of array
          for (int i = 0; i < T; i++) {
                   arr[i]->print();
          }
          return 0;
}

Output:

Initialize Array of objects with parameterized constructors in C++

Using a new keyword: On the Heap, the new operator denotes a memory allocation request. If there is enough memory, the new operator identifies the memory and returns the newly allocated and configured memory address to the variable name. Here, point-variable is the information-type pointer. Data type could be any type of built-in data along with an array or any type of user-defined data such as structure and class.

If we add a parameterized constructor, a new keyword requires a non-parameterized constructor for dynamic initialization. So we're going to use a dummy constructor for that.

#include <iostream>
#define E 15
using namespace std;
class Test {
    // private variables
    int m, n;
public:
    // dummy constructor
    Test() {}
    // parameterised constructor
    Test(int m, int n)
    {
        this->m = m;
        this->n = n;
    }
    // function to print
    void print()
    {
        cout << m << " " << n << endl;
    }
};
int main()
{
    // allocating dynamic array
    // of Size N using new keyword
    Test* arr = new Test[E];
    // calling constructor
    // for each index of array
    for (int j = 0; j < E; j++) {
        arr[j] = Test(j, j + 1);
    }
    // printing contents of array
    for (int j = 0; j < E; j++) {
        arr[j].print();
    }
    return 0;
}

Output:

Initialize Array of objects with parameterized constructors in C++



ADVERTISEMENT
ADVERTISEMENT