Bird
Raised Fist0
C++programming~5 mins

Parameterized constructor in C++

Choose your learning style10 modes available
Introduction

A parameterized constructor helps create objects with specific values right when you make them. It saves time by setting up the object automatically.

When you want to create a car object with a specific color and model right away.
When making a bank account object with an initial balance.
When creating a student object with a name and grade at the start.
Syntax
C++
class ClassName {
public:
    ClassName(type1 param1, type2 param2) {
        // use param1, param2 to set object properties
    }
};
The constructor has the same name as the class.
It takes parameters to set initial values for the object.
Examples
This constructor sets the car's color when you create it.
C++
class Car {
public:
    string color;
    Car(string c) {
        color = c;
    }
};
This constructor sets the x and y coordinates of a point.
C++
class Point {
public:
    int x, y;
    Point(int a, int b) {
        x = a;
        y = b;
    }
};
Sample Program

This program creates a Book object with a title and number of pages using a parameterized constructor. It then prints these details.

C++
#include <iostream>
#include <string>
using namespace std;

class Book {
public:
    string title;
    int pages;

    Book(string t, int p) {
        title = t;
        pages = p;
    }
};

int main() {
    Book myBook("C++ Basics", 150);
    cout << "Title: " << myBook.title << "\n";
    cout << "Pages: " << myBook.pages << "\n";
    return 0;
}
OutputSuccess
Important Notes

If you don't provide a parameterized constructor, C++ uses a default constructor with no parameters.

You can have multiple constructors with different parameters (called constructor overloading).

Summary

Parameterized constructors let you set object values when creating them.

They have the same name as the class and take parameters.

They make your code cleaner and easier to use.

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