Bird
Raised Fist0
C++programming~10 mins

Why constructors are needed in C++ - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a constructor for the class.

C++
class Car {
public:
    [1]() {
        speed = 0;
    }
private:
    int speed;
};
Drag options to blanks, or click blank then click option'
Acar
BCar
Cvoid Car
Dint Car
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using lowercase 'car' instead of 'Car'.
Adding a return type like 'void' or 'int' to the constructor.
2fill in blank
medium

Complete the constructor to initialize the member variable 'speed' with the given value.

C++
class Car {
public:
    Car(int s) {
        [1] = s;
    }
private:
    int speed;
};
Drag options to blanks, or click blank then click option'
Aspeed
Bs
CCar::speed
Dthis->speed
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Assigning to the parameter s instead of the member variable.
Using just 'speed' without this-> which can cause confusion.
3fill in blank
hard

Fix the error in the constructor declaration to properly initialize 'speed'.

C++
class Car {
public:
    Car(int s) : [1](s) {}
private:
    int speed;
};
Drag options to blanks, or click blank then click option'
Aspeed
Bs
Cthis->speed
DCar::speed
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using the parameter name 's' instead of the member variable 'speed' in the initializer list.
Using 'this->speed' which is not allowed in initializer lists.
4fill in blank
hard

Fill both blanks to create a constructor that sets 'speed' and 'color' with given values.

C++
class Car {
public:
    Car(int s, std::string c) : [1](s), [2](c) {}
private:
    int speed;
    std::string color;
};
Drag options to blanks, or click blank then click option'
Aspeed
Bs
Ccolor
Dc
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using parameter names instead of member variable names in the initializer list.
Mixing up the order of initialization.
5fill in blank
hard

Fill all three blanks to create a constructor that initializes 'speed', 'color', and 'model'.

C++
class Car {
public:
    Car(int s, std::string c, std::string m) : [1](s), [2](c), [3](m) {}
private:
    int speed;
    std::string color;
    std::string model;
};
Drag options to blanks, or click blank then click option'
Aspeed
Bcolor
Cmodel
Dm
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using parameter names instead of member variable names in the initializer list.
Forgetting to initialize one of the member variables.

Practice

(1/5)
1. Why do we need constructors in C++ classes?
easy
A. To define new data types
B. To delete objects from memory
C. To automatically initialize objects when they are created
D. To write comments inside the class

Solution

  1. Step 1: Understand object creation

    When an object is created, it needs initial values to work correctly.
  2. Step 2: Role of constructors

    Constructors automatically set these initial values without extra code from the user.
  3. Final Answer:

    To automatically initialize objects when they are created -> Option C
  4. Quick Check:

    Constructors initialize objects = A [OK]
Hint: Constructors set initial values automatically [OK]
Common Mistakes:
  • Thinking constructors delete objects
  • Confusing constructors with data type definitions
  • Believing constructors are for comments
2. Which of the following is the correct syntax for a constructor in a C++ class named Car?
easy
A. void Car() {}
B. Car() {}
C. int Car() {}
D. constructor Car() {}

Solution

  1. Step 1: Recall constructor syntax

    A constructor has the same name as the class and no return type.
  2. Step 2: Check each option

    Car() {} matches this: Car() {} has no return type and matches class name.
  3. Final Answer:

    Car() {} -> Option B
  4. Quick Check:

    Constructor name = class name, no return type = A [OK]
Hint: Constructor name = class name, no return type [OK]
Common Mistakes:
  • Adding return type like void or int
  • Using 'constructor' keyword
  • Writing constructor name different from class
3. What will be the output of this C++ code?
class Box {
public:
  int length;
  Box(int l) { length = l; }
};

int main() {
  Box b(10);
  std::cout << b.length;
  return 0;
}
medium
A. 0
B. Garbage value
C. Compilation error
D. 10

Solution

  1. Step 1: Understand constructor usage

    The constructor Box(int l) sets length to the passed value.
  2. Step 2: Check object creation and output

    Object b is created with 10, so b.length is 10, which is printed.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    Constructor sets length = 10 [OK]
Hint: Constructor sets member values on creation [OK]
Common Mistakes:
  • Assuming default value 0 without constructor
  • Expecting compilation error due to missing default constructor
  • Thinking uninitialized variables print garbage
4. Identify the error in this C++ class and fix it:
class Person {
public:
  string name;
  Person(string n) { name = n; }
};

int main() {
  Person p;
  return 0;
}
medium
A. Add a default constructor Person() {}
B. Change constructor to void Person(string n) {}
C. Remove the constructor completely
D. Change main to Person p("John");

Solution

  1. Step 1: Understand the error cause

    Object p is created without arguments but only a parameterized constructor exists.
  2. Step 2: Fix by adding default constructor

    Adding Person() {} allows creating p without arguments.
  3. Final Answer:

    Add a default constructor Person() {} -> Option A
  4. Quick Check:

    Missing default constructor causes error = B [OK]
Hint: Add default constructor if no-arg object needed [OK]
Common Mistakes:
  • Changing constructor return type (invalid)
  • Removing constructor loses initialization
  • Changing main without fixing class
5. You want to create a class Student that always sets a student's name and age when an object is created. Which constructor design is best and why?
hard
A. Provide a constructor with parameters for name and age to ensure initialization
B. Use no constructor and set values later manually
C. Use a constructor with no parameters and default values inside
D. Use a destructor to set name and age

Solution

  1. Step 1: Understand the requirement

    We want to ensure name and age are set when the object is created.
  2. Step 2: Choose constructor design

    A constructor with parameters forces setting these values immediately, preventing uninitialized objects.
  3. Final Answer:

    Provide a constructor with parameters for name and age to ensure initialization -> Option A
  4. Quick Check:

    Parameterized constructor ensures required data set [OK]
Hint: Use parameterized constructor to force initialization [OK]
Common Mistakes:
  • Relying on manual setting after creation
  • Using destructor for initialization (wrong purpose)
  • Using default constructor with no parameters
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