Bird
Raised Fist0
C++programming~5 mins

Default constructor in C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a default constructor in C++?
A default constructor is a special constructor that can be called with no arguments. It initializes objects with default values.
Click to reveal answer
beginner
How does the compiler behave if you don't define any constructor in a class?
The compiler automatically provides a default constructor that initializes members with default values if no constructor is defined.
Click to reveal answer
beginner
Write a simple class with a default constructor that prints a message when called.
#include <iostream>
class MyClass {
public:
    MyClass() { std::cout << "Default constructor called\n"; }
};
Click to reveal answer
intermediate
Can a default constructor have parameters?
Yes, but all parameters must have default values so that the constructor can be called without arguments.
Click to reveal answer
intermediate
What happens if you declare a constructor with parameters but no default constructor?
The compiler does not generate a default constructor automatically, so you cannot create objects without arguments unless you define one explicitly.
Click to reveal answer
What is the main purpose of a default constructor?
ATo initialize an object without any arguments
BTo copy an object
CTo destroy an object
DTo overload operators
If you define a constructor with parameters but no default constructor, what happens when you try to create an object without arguments?
AIt works fine
BThe compiler creates a default constructor automatically
CObject is initialized with garbage values
DCompiler error: no matching constructor
Which of these is a valid default constructor declaration?
AMyClass(int x = 0);
BMyClass();
CBoth B and C
DMyClass(int x);
What does the compiler do if no constructor is defined in a class?
AIt refuses to compile
BIt creates a default constructor automatically
CIt creates a destructor automatically
DIt creates a copy constructor automatically
Which of the following statements about default constructors is FALSE?
ADefault constructors always initialize members to zero
BDefault constructors can have parameters with default values
CDefault constructors can be user-defined
DIf no constructor is defined, the compiler provides a default constructor
Explain what a default constructor is and when the compiler provides one automatically.
Think about how objects are created without giving any values.
You got /4 concepts.
    Describe what happens if you define a constructor with parameters but do not define a default constructor.
    Consider what happens when you try to create an object with no arguments.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is a default constructor in C++?
      easy
      A. A constructor that requires at least one argument.
      B. A constructor with no parameters that initializes objects with default values.
      C. A function that deletes objects automatically.
      D. A special function that runs only when the program ends.

      Solution

      1. Step 1: Understand constructor basics

        A constructor is a special function to create objects.
      2. Step 2: Identify default constructor meaning

        A default constructor has no parameters and sets default values.
      3. Final Answer:

        A constructor with no parameters that initializes objects with default values. -> Option B
      4. Quick Check:

        Default constructor = no parameters, default values [OK]
      Hint: Default constructor has zero parameters [OK]
      Common Mistakes:
      • Thinking default constructor requires arguments
      • Confusing destructor with constructor
      • Assuming default constructor runs at program end
      2. Which of the following is the correct syntax for a default constructor in C++?
      easy
      A. class MyClass { MyClass() {} };
      B. class MyClass { MyClass(int x) {} };
      C. class MyClass { void MyClass() {} };
      D. class MyClass { MyClass() int {} };

      Solution

      1. Step 1: Check constructor syntax

        Constructor has the same name as the class and no return type.
      2. Step 2: Identify default constructor syntax

        Default constructor has empty parentheses and no parameters.
      3. Final Answer:

        class MyClass { MyClass() {} }; -> Option A
      4. Quick Check:

        Constructor syntax = class name + () + no return type [OK]
      Hint: Constructor name = class name, no return type, empty () [OK]
      Common Mistakes:
      • Adding void return type to constructor
      • Using parameters in default constructor
      • Incorrect placement of braces
      3. What will be the output of this code?
      class Box {
      public:
        int length;
        Box() { length = 5; }
      };
      int main() {
        Box b;
        std::cout << b.length;
        return 0;
      }
      medium
      A. Compilation error
      B. 0
      C. 5
      D. Random value

      Solution

      1. Step 1: Understand the default constructor

        The constructor sets length to 5 when object b is created.
      2. Step 2: Check output statement

        Printing b.length outputs the value set by constructor, which is 5.
      3. Final Answer:

        5 -> Option C
      4. Quick Check:

        Constructor sets length=5, output = 5 [OK]
      Hint: Default constructor sets values before output [OK]
      Common Mistakes:
      • Assuming uninitialized int defaults to 0
      • Expecting compilation error due to missing initialization
      • Thinking output is random without constructor
      4. Identify the error in this class definition:
      class Sample {
      public:
        int x;
        Sample() {
          x = 10
        }
      };
      medium
      A. Class missing closing brace
      B. Constructor name does not match class name
      C. Missing return type in constructor
      D. Missing semicolon after x = 10

      Solution

      1. Step 1: Check constructor body syntax

        Each statement inside constructor must end with a semicolon.
      2. Step 2: Locate missing semicolon

        The line 'x = 10' lacks a semicolon at the end.
      3. Final Answer:

        Missing semicolon after x = 10 -> Option D
      4. Quick Check:

        Statements need semicolons [OK]
      Hint: Check for missing semicolons inside constructor [OK]
      Common Mistakes:
      • Adding return type to constructor
      • Ignoring missing semicolon errors
      • Confusing constructor name with return type
      5. Given this class:
      class Point {
      public:
        int x, y;
        Point() { x = 0; y = 0; }
        Point(int a, int b) { x = a; y = b; }
      };
      
      // In main:
      Point p1;
      Point p2(3, 4);
      std::cout << p1.x << "," << p1.y << " " << p2.x << "," << p2.y;

      What is the output and why?
      hard
      A. 0,0 3,4 because p1 uses default constructor, p2 uses parameterized constructor.
      B. 3,4 0,0 because constructors are swapped.
      C. Compilation error due to multiple constructors.
      D. 0,0 0,0 because default constructor overrides parameterized one.

      Solution

      1. Step 1: Understand constructor calls

        p1 is created with no arguments, so default constructor sets x=0, y=0.
      2. Step 2: Understand parameterized constructor

        p2 is created with (3,4), so x=3, y=4 from parameterized constructor.
      3. Step 3: Check output statement

        Output prints p1's coordinates then p2's coordinates separated by space.
      4. Final Answer:

        0,0 3,4 because p1 uses default constructor, p2 uses parameterized constructor. -> Option A
      5. Quick Check:

        Default and parameterized constructors work together [OK]
      Hint: Default constructor for no args, parameterized for args [OK]
      Common Mistakes:
      • Assuming default constructor overrides parameterized
      • Expecting compilation error with multiple constructors
      • Mixing up which constructor is called
      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