RGPV PYQ
Object and Classes:
Objects: In programming, an object is an instance of a class. It is a class concrete entity that represents a real world thing or concept. Objects may hold properties, attributes, members (attributes), and behaviors (methods or functions).
Classes: A class serves as a blueprint for creating objects. It defines the attributes and methods that will be used in creating objects based on this class. Simply put, a class combines data and actions.
Multiple Constructors in C++:
Indeed, C++ classes can have multiple constructors with the same name, which is called constructor overloading. In this case, it enables the provision of various constructors inside a single class with different parameter counts.
Constructor overloading example in C++ language:
#include <iostream>
#include <string>
class Person {
private:
std::string name;
int age;
public:
// Default constructor
Person() : name(""), age(0) {}
// Parameterized constructor with one parameter
Person(std::string n) : name(n), age(0) {}
// Parameterized constructor with two parameters
Person(std::string n, int a) : name(n), age(a) {}
// Method to display information
void displayInfo() {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
};
int main() {
// Creating objects using different constructors
Person person1; // Default constructor
Person person2("John"); // Parameterized constructor with one parameter
Person person3("Alice", 25); // Parameterized constructor with two parameters
// Displaying information
person1.displayInfo();
person2.displayInfo();
person3.displayInfo();
return 0;
}
In this example, the Person class has three constructors:
- The default constructor initializes the name to an empty string and age to 0.
- The parameterized constructor with one parameter initializes the name with the provided value and sets age to 0.
- The parameterized constructor with two parameters initializes both name and age with the provided values.
By having multiple constructors, you can create objects in different ways based on the available constructor signatures.