An object is a specific instance of a class that holds data and can perform actions defined by the class.
Click to reveal answer
beginner
How do you create an object of a class named <code>Car</code>?
You create an object by declaring it with the class name, like: <code>Car myCar;</code>
Click to reveal answer
intermediate
What is the difference between creating an object on the stack vs the heap in C++?
Stack objects are created with simple declarations and automatically destroyed when out of scope. Heap objects are created with new and must be manually deleted.
Click to reveal answer
beginner
What does the new keyword do when creating an object?
new allocates memory on the heap and returns a pointer to the newly created object.
Click to reveal answer
beginner
How do you delete an object created with new?
You use the delete keyword followed by the pointer to free the memory, like: delete myObject;
Click to reveal answer
How do you create an object named dog of class Animal on the stack?
Anew Animal dog;
BAnimal* dog = new Animal();
CAnimal dog;
DAnimal dog = new Animal();
✗ Incorrect
Declaring Animal dog; creates an object on the stack.
Which keyword is used to create an object on the heap?
Anew
Balloc
Ccreate
Dmalloc
✗ Incorrect
The new keyword allocates memory on the heap for an object.
What must you do after creating an object with new to avoid memory leaks?
AUse <code>free()</code> function
BCall the destructor manually
CNothing, it cleans up automatically
DUse <code>delete</code> to free memory
✗ Incorrect
You must use delete to free memory allocated by new.
What type of variable holds the address of an object created with new?
APointer
BReference
CInteger
DArray
✗ Incorrect
Objects created with new return a pointer to the object.
Which of the following creates an object on the heap?
ACar myCar;
BCar* myCar = new Car();
CCar myCar = Car();
DCar myCar = &Car();
✗ Incorrect
Car* myCar = new Car(); creates an object on the heap and stores its address in a pointer.
Explain how to create an object of a class in C++ both on the stack and on the heap.
Think about simple declaration vs using new keyword.
You got /3 concepts.
Describe why it is important to use delete with objects created using new.
Consider what happens if memory is not freed.
You got /3 concepts.
Practice
(1/5)
1. Which of the following correctly creates an object named car1 from a class Car?
easy
A. new Car car1;
B. car1 Car;
C. Car car1;
D. Car = car1;
Solution
Step 1: Understand object creation syntax in C++
Objects are created by writing the class name followed by the object name and a semicolon.
Step 2: Check each option
Car car1; uses correct syntax: Car car1;. Others are incorrect because they misuse order or keywords.
Final Answer:
Car car1; -> Option C
Quick Check:
ClassName objectName; = Car car1; [OK]
Hint: Class name first, then object name, end with semicolon [OK]
Common Mistakes:
Swapping class and object names
Using assignment operator instead of declaration
Using 'new' keyword without pointer
2. Which of the following is the correct syntax to create an object book1 of class Book using a constructor explicitly?
easy
A. Book book1();
B. Book book1;
C. Book book1{};
D. Book book1 = Book();
Solution
Step 1: Understand constructor call syntax
To call a constructor explicitly, you can use ClassName object = ClassName(); which calls the default constructor.
Step 2: Analyze options
Book book1(); is a function declaration, not an object. Book book1; creates object but does not explicitly call constructor. Book book1{}; uses brace initialization but may not call constructor explicitly. Book book1 = Book(); correctly calls constructor.
Final Answer:
Book book1 = Book(); -> Option D
Quick Check:
Explicit constructor call = Book book1 = Book(); [OK]
Hint: Use ClassName object = ClassName(); to call constructor explicitly [OK]
Common Mistakes:
Writing ClassName object(); which is a function declaration
Forgetting parentheses for constructor call
Using braces without understanding initialization
3. What will be the output of the following code?
class Dog {
public:
Dog() { age = 5; }
int age;
};
int main() {
Dog d1;
std::cout << d1.age;
return 0;
}
medium
A. 5
B. 0
C. Compilation error
D. Random value
Solution
Step 1: Understand constructor initialization
The constructor sets age = 5; when the object d1 is created.
Step 2: Check output statement
The program prints d1.age, which is 5 as set by the constructor.
Final Answer:
5 -> Option A
Quick Check:
Constructor sets age to 5, output = 5 [OK]
Hint: Constructor sets values; printed value matches constructor assignment [OK]
Common Mistakes:
Assuming default int is zero without constructor
Thinking constructor is not called
Confusing uninitialized variables with constructor initialization
4. Identify the error in the following code that tries to create an object student1 of class Student:
class Student {
public:
Student(int id) { studentId = id; }
int studentId;
};
int main() {
Student student1;
return 0;
}
medium
A. Missing semicolon after class definition
B. No default constructor available for Student
C. studentId is not initialized
D. student1 is declared as a pointer but not initialized
Solution
Step 1: Check constructor availability
The class has only a constructor that requires an int parameter. No default (no-argument) constructor exists.
Step 2: Analyze object creation
Creating Student student1; calls default constructor, which is missing, causing a compilation error.
Final Answer:
No default constructor available for Student -> Option B
Quick Check:
Constructor needs int, no default constructor [OK]
Hint: If constructor needs arguments, default object creation fails [OK]
Common Mistakes:
Assuming compiler creates default constructor when custom exists
Ignoring constructor parameters
Confusing uninitialized variables with constructor errors
5. Given the class below, which code correctly creates two objects p1 and p2 with different starting values for x and y?
class Point {
public:
int x, y;
Point(int a, int b) { x = a; y = b; }
};
hard
A. Point p1(1, 2), p2(3, 4);
B. Point p1 = Point(1, 2); Point p2 = Point(3);
C. Point p1; Point p2(3, 4);
D. Point p1(1); Point p2(3, 4);
Solution
Step 1: Understand constructor parameters
The constructor requires two integers to initialize x and y.
Step 2: Check each option for correct calls
Point p1(1, 2), p2(3, 4); correctly creates both objects with two integers. Point p1 = Point(1, 2); Point p2 = Point(3); fails because second call has only one argument. Point p1; Point p2(3, 4); fails because p1 uses default constructor which does not exist. Point p1(1); Point p2(3, 4); fails because p1 has only one argument.
Final Answer:
Point p1(1, 2), p2(3, 4); -> Option A
Quick Check:
Constructor needs two ints, both objects must pass two ints [OK]
Hint: Pass all required constructor arguments for each object [OK]
Common Mistakes:
Calling constructor with wrong number of arguments
Trying to create object without required constructor
Assuming default constructor exists when it doesn't
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.