Bird
Raised Fist0
C++programming~10 mins

Parameterized constructor in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Parameterized constructor
Create object
↓
Call constructor with parameters
↓
Assign parameters to object variables
↓
Object initialized with given values
↓
Object ready to use
When an object is created, the parameterized constructor runs, taking input values and setting the object's variables.
Execution Sample
C++
class Box {
  int length;
public:
  Box(int l) { length = l; }
  int getLength() { return length; }
};
Box b(5);
This code creates a Box object with length set to 5 using a parameterized constructor.
Execution Table
StepActionParameter valueVariable 'length' valueOutput
1Call constructor Box(5)5uninitialized
2Assign length = 555
3Constructor ends55
4Call b.getLength()55
💡 Constructor finishes after assigning parameter to length; getLength() returns 5.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
lengthuninitializeduninitialized55
parameter lN/A55N/A
Key Moments - 2 Insights
Why does 'length' have the value 5 after the constructor runs?
Because in step 2 of the execution_table, the parameter 'l' with value 5 is assigned to the member variable 'length'.
What happens if we create Box b(10)?
The constructor assigns 10 to 'length' instead of 5, similar to step 2 but with parameter value 10.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'length' after step 2?
Auninitialized
B0
C5
Dundefined
💡 Hint
Check the 'Variable length value' column in row for step 2.
At which step does the constructor finish running?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Action' column describing constructor end.
If we change the parameter to 7 when creating Box b(7), what will getLength() return?
A5
B7
C0
Duninitialized
💡 Hint
Refer to variable_tracker and how parameter value assigns 'length'.
Concept Snapshot
Parameterized constructor syntax:
class ClassName {
  Type var;
public:
  ClassName(Type param) { var = param; }
};
Creates object with var set to param value.
Full Transcript
A parameterized constructor is a special function in a class that runs when an object is created. It takes input values (parameters) and uses them to set the object's variables. For example, when we create a Box object with Box b(5), the constructor receives 5 and assigns it to the length variable. This way, the object starts with the values we want. The execution steps show calling the constructor, assigning the parameter to the variable, and then using the object. This helps us create objects with different starting values easily.

Practice

(1/5)
1.

What is the main purpose of a parameterized constructor in C++?

easy
A. To initialize an object with specific values when it is created
B. To delete an object from memory
C. To copy one object to another
D. To create a function outside the class

Solution

  1. Step 1: Understand constructor role

    A constructor sets up an object when it is created.
  2. Step 2: Identify parameterized constructor use

    Parameterized constructors allow passing values to set object properties immediately.
  3. Final Answer:

    To initialize an object with specific values when it is created -> Option A
  4. Quick Check:

    Parameterized constructor = initialize with values [OK]
Hint: Think: constructor sets initial values when making an object [OK]
Common Mistakes:
  • Confusing constructor with destructor
  • Thinking constructors copy objects
  • Believing constructors are separate functions
2.

Which of the following is the correct syntax for a parameterized constructor in C++?

class Box {
public:
    Box(int w, int h) { width = w; height = h; }
private:
    int width, height;
};
easy
A. Box(int w, int h) { width = w; height = h; }
B. void Box(int w, int h) { width = w; height = h; }
C. Box() { width = w; height = h; }
D. Box(int w, int h) -> void { width = w; height = h; }

Solution

  1. Step 1: Check constructor name and return type

    Constructor must have the same name as the class and no return type.
  2. Step 2: Verify parameter list and body

    Box(int w, int h) { width = w; height = h; } matches correct syntax: name matches class, parameters present, no return type.
  3. Final Answer:

    Box(int w, int h) { width = w; height = h; } -> Option A
  4. Quick Check:

    Constructor = class name + no return type [OK]
Hint: Constructor has no return type and matches class name [OK]
Common Mistakes:
  • Adding void return type to constructor
  • Using different name than class
  • Missing parameters in parameterized constructor
3.

What will be the output of this code?

#include <iostream>
class Point {
public:
    int x, y;
    Point(int a, int b) { x = a; y = b; }
};

int main() {
    Point p(3, 4);
    std::cout << p.x << ", " << p.y << std::endl;
    return 0;
}
medium
A. Compilation error
B. 3, 4
C. 0, 0
D. Random values

Solution

  1. Step 1: Understand constructor call

    The object p is created with values 3 and 4 passed to the constructor.
  2. Step 2: Check member variable assignment and output

    The constructor sets x=3 and y=4, so printing p.x and p.y outputs "3, 4".
  3. Final Answer:

    3, 4 -> Option B
  4. Quick Check:

    Constructor sets values correctly = 3, 4 [OK]
Hint: Constructor sets values; output matches passed parameters [OK]
Common Mistakes:
  • Assuming default values instead of passed ones
  • Expecting compilation error due to missing default constructor
  • Confusing output format
4.

Identify the error in this code snippet:

#include <iostream>
class Car {
public:
    int speed;
    Car(int s) { speed = s; }
};

int main() {
    Car c;
    std::cout << c.speed << std::endl;
    return 0;
}
medium
A. Variable speed is not declared
B. Incorrect syntax in constructor definition
C. Missing default constructor causes error when creating Car c;
D. Output will be garbage value

Solution

  1. Step 1: Check object creation

    The line Car c; tries to create an object without parameters.
  2. Step 2: Verify constructors available

    Only a parameterized constructor Car(int s) exists; no default constructor is defined.
  3. Step 3: Understand compilation error

    Because no default constructor exists, Car c; causes a compilation error.
  4. Final Answer:

    Missing default constructor causes error when creating Car c; -> Option C
  5. Quick Check:

    No default constructor + no args object = error [OK]
Hint: If no default constructor, you must pass arguments when creating object [OK]
Common Mistakes:
  • Assuming default constructor exists automatically
  • Thinking variable declaration is missing
  • Expecting garbage output instead of compile error
5.

Given this class, how can you create an object r with width 5 and height 10 using the parameterized constructor?

class Rectangle {
public:
    int width, height;
    Rectangle(int w, int h) { width = w; height = h; }
};
hard
A. Rectangle r = Rectangle{5};
B. Rectangle r();
C. Rectangle r = Rectangle();
D. Rectangle r = Rectangle(5, 10);

Solution

  1. Step 1: Identify constructor parameters

    The constructor requires two integers: width and height.
  2. Step 2: Match object creation syntax

    Rectangle r = Rectangle(5, 10); correctly calls the constructor with two arguments (5, 10) to create object r.
  3. Step 3: Check other options

    Rectangle r(); is a function declaration, not object creation. Rectangle r = Rectangle(); calls default constructor which doesn't exist. Rectangle r = Rectangle{5}; passes only one argument, which is invalid.
  4. Final Answer:

    Rectangle r = Rectangle(5, 10); -> Option D
  5. Quick Check:

    Pass all required parameters to constructor [OK]
Hint: Call constructor with all parameters to create object [OK]
Common Mistakes:
  • Using empty parentheses which declare a function
  • Calling constructor without required arguments
  • Passing wrong number of arguments
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard