Bird
Raised Fist0
C++programming~5 mins

Parameterized constructor in C++ - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Parameterized constructor
O(n)
Understanding Time Complexity

Let's see how long it takes to create an object using a parameterized constructor.

We want to know how the time changes when we create many objects with parameters.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

class Box {
public:
    int length, width, height;
    Box(int l, int w, int h) {
        length = l;
        width = w;
        height = h;
    }
};

int main() {
    Box b(10, 20, 30);
    return 0;
}

This code creates one Box object using a parameterized constructor that sets its dimensions.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Assigning values to object properties inside the constructor.
  • How many times: Once per object creation.
How Execution Grows With Input

Each time we create a new object, the constructor runs once to set values.

Input Size (n)Approx. Operations
1030 assignments
100300 assignments
10003000 assignments

Pattern observation: The work grows directly with the number of objects created.

Final Time Complexity

Time Complexity: O(n)

This means if you create more objects, the total time grows in a straight line with how many you make.

Common Mistake

[X] Wrong: "Creating an object with parameters takes the same time no matter how many objects are made."

[OK] Correct: Each object needs its own constructor call, so more objects mean more total work.

Interview Connect

Understanding how object creation time grows helps you write efficient code and explain your reasoning clearly in interviews.

Self-Check

"What if the constructor also called a function that loops over a list? How would the time complexity change?"

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