Classes and Objects
Classes and Objects
Classes and Objects
C++ Classes/Objects
C++ is an object-oriented programming language.
Everything in C++ is associated with classes and objects, along with its attributes and methods. For example: in real
life, a car is an object. The car has attributes, such as weight and color, and methods, such as drive and brake.
Attributes and methods are basically variables and functions that belongs to the class. These are often referred to as
"class members".
A class is a user-defined data type that we can use in our program, and it works as an object constructor, or a
"blueprint" for creating objects.
Create a Class
To create a class, use the class keyword:
#include <iostream>
#include <string>
using namespace std;
int main() {
MyClass myObj; // Create an object of MyClass
// Print values
cout << myObj.myNum << "\n";
cout << myObj.myString;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class Car {
public:
string brand;
string model;
int year;
};
int main() {
Car carObj1;
carObj1.brand = "BMW";
carObj1.model = "X5";
carObj1.year = 1999;
Car carObj2;
carObj2.brand = "Ford";
carObj2.model = "Mustang";
carObj2.year = 1969;
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
Output:
BMW X5 1999
Ford Mustang 1969
The main purpose of C++ programming is to add object orientation to the C programming language and classes are
the central feature of C++ that supports object-oriented programming and are often called user-defined types.
A class is used to specify the form of an object and it combines data representation and methods for manipulating
that data into one neat package. The data and functions within a class are called members of the class.
When you define a class, you define a blueprint for a data type. This doesn't actually define any data, but it does
define what the class name means, that is, what an object of the class will consist of and what operations can be
performed on such an object.
A class definition starts with the keyword class followed by the class name; and the class body, enclosed by a pair of
curly braces. A class definition must be followed either by a semicolon or a list of declarations. For example, we
defined the Box data type using the keyword class as follows –
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
The keyword public determines the access attributes of the members of the class that follows it. A public member
can be accessed from outside the class anywhere within the scope of the class object. You can also specify the
members of a class as private or protected which we will discuss in a sub-section.
A class provides the blueprints for objects, so basically an object is created from a class. We declare objects of a class
with exactly the same sort of declaration that we declare variables of basic types. Following statements declare two
objects of class Box −
Both of the objects Box1 and Box2 will have their own copy of data members.
#include <iostream>
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
int main() {
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
// box 2 specification
Box2.height = 10.0;
Box2.length = 12.0;
Box2.breadth = 13.0;
// volume of box 1
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Volume of Box1 : " << volume <<endl;
// volume of box 2
volume = Box2.height * Box2.length * Box2.breadth;
cout << "Volume of Box2 : " << volume <<endl;
return 0;
}
When the above code is compiled and executed, it produces the following result −
It is important to note that private and protected members can not be accessed directly using direct member access
operator (.). We will learn how private and protected members can be accessed.
We can access the various string class functions by including the <string> header in our file.
#include <string>
#include <iostream>
#include <string>
using namespace std;
int main() {
if (first_occurrence != string::npos) {
cout << "First occurrence: 'world' found at position: " << first_occurrence << endl;
cout << "Last occurrence: 'world' found at position: " << last_occurrence << endl;
}
else {
cout << "'world' not found" << endl;
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
return 0;
}
int main() {
return 0;
}
Before: Hello world, beautiful world!
After: Hello Earthrld, beautiful world!
int main() {
return 0;
}