Flash cards
Review the key moves
What is the main idea behind C++ Constructors?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
___ MyClass { // The classPut the learning moves in the order that makes the concept easiest to apply.
Constructors
A constructor is a special method that is automatically called when an object of a class is created.
To create a constructor, use the same name as the class, followed by parentheses () :
Example
class MyClass { // The class
public: // Access specifier
MyClass() {
// Constructor cout << "Hello World!";
}
};
int main() {
MyClass myObj; // Create an object of MyClass (this will call
the constructor)
return 0;
}Constructor Rules
- The constructor has the same name as the class .
- It has no return type (not even void ).
- It is usually declared public .
- It is automatically called when an object is created.
Constructor with Parameters
Constructors can also take parameters (just like regular functions), which can be useful for setting initial values for attributes.
The following class have brand , model and year attributes, and a constructor with different parameters. Inside the constructor we set the attributes equal to the constructor parameters ( brand=x , etc).
When we call the constructor (by creating an object of the class), we pass parameters to the constructor, which will set the value of the corresponding attributes to the same:
Example
class Car { // The class
public: // Access specifier
string brand; // Attribute
string model; // Attribute
int year; // Attribute
Car(string x, string y, int z) { // Constructor with parameters
brand = x;
model = y;
year = z;
}
};
int main() {
// Create Car objects and call the constructor with different values Car carObj1("BMW", "X5", 1999); Car carObj2("Ford", "Mustang", 1969); // Print values cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n"; cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}Constructor Defined Outside the Class
You can also define the constructor outside the class using the scope resolution operator :: .
Example
class Car { // The class
public: // Access
specifier
string brand; // Attribute
string model; // Attribute
int year;
// Attribute Car(string x, string y, int z); // Constructor declaration
};
// Constructor definition outside the class Car::Car(string x, string y, int z) { brand = x; model = y; year = z;
}
int main() {
// Create Car objects and call the constructor with different values Car carObj1("BMW", "X5", 1999); Car carObj2("Ford", "Mustang", 1969); // Print values cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n"; cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}Why Constructors Are Useful
Constructors run by themselves when you create an object. They set things up so everything is ready right away.
Think of it like this: When you order a pizza (object), the constructor is the chef who adds the sauce, cheese, and toppings before it gets to you - you don't have to do it yourself!