C++ Classes And Objects
One of the most important features of C++ is classes and objects. Bjarne Stroustrup initially named C with classes. It is a way to group data elements and functions together.
C++ Classes
Classes are used to represent a set of similar objects. Class is a way in which we can bind data describing the entity and its associated function together.
The class declaration includes the declaration of four associated attributes.
Attributes | Description |
---|---|
Data Members | It defines the characteristics of the class. |
Member Functions | It includes the set of operations that can be applied to the objects of that class. |
Program access level | It controls member access from within the program. |
Class tagname | It acts as a type for the class. |
The Class Definition:
Class definitions describe component members such as the data member and the member function of the class. The general form of class is :-
class class-name { private: [variable declaration;] [function declaration;] protected: [variable declaration;] [function declaration;] public: [variable declaration;] [function declaration;] };
Where the keyword 'class' specifies that it is a class. The class-name is a tag name through which a class object can be created. Public, private and protected is an access specifier that specifies whether members (attributes and methods) may be accessible outside the class or not.
In C++, there are three access specifiers:
Public - attributes and methods are accessible from anywhere.
Private - attributes and methods cannot be accessed (or viewed) from outside the class.
Protected - attributes and methods cannot be accessed from outside the class, however, they can be accessed in inherited classes.
Base class Access Specifier | Private | Protected | Public |
---|---|---|---|
Public | Public | Protected | Private |
Protected | Protected | Protected | Private |
Private | Not accessible(Hidden) | Not accessible(Hidden) | Not accessible(Hidden) |
For example, we defined the class named 'LfcClass' using the keyword class as follows −
class LfcClass { // The class public: // Access specifier int lfcNum; // Attribute (int variable) string lfcString; // Attribute (string variable) };
C++ Objects
An Object is an instance of a Class. Once we define a class, the object of that class can be created like any other variable. Class defines the information that the object will contain.
Syntax :-
class-name object-list (comma seperated);
Example:-
LfcClass abc; // Declare abc of type LfcClass LfcClass xyz; // Declare xyz of type LfcClass
For instance, consider the following code fragment:-
#include <bits/stdc++.h> using namespace std; class Lfc { // Access specifier public: // Data Members string lfcname; // Member Functions() void printname() { cout << "lfcname is: " << lfcname; } }; int main() { // Declare an object of class Lfc Lfc obj1; // accessing data member obj1.lfcname = "letsfindcourse"; // accessing member function obj1.printname(); return 0; }
Output:-
lfcname is: letsfindcourse
Multiple Objects:
You can create multiple objects of a class:
#include<iostream> using namespace std; class Item{ int mynum; public: void readnum(); void printnum(); }; void Item :: readnum(){ cout<<"Enter any integer value "<< endl; cin>>mynum; } void Item :: printnum(){ cout<<"The value is :"<< mynum<< endl; } int main(){ Item i1,i2,i3; i1.readnum(); i2.readnum(); i3.readnum(); i1.printnum(); i2.printnum(); i3.printnum(); return 0; }
Output:-
Enter any integer value 741 Enter any integer value 852 Enter any integer value 963 The value is :741 The value is :852 The value is :963
Exercise:-
1. Which of the following is true?
View Answer
2. A member function can always access the data in __________ .
View Answer
Program :-
Object and Class in C++ Programming
#include <iostream> using namespace std; class Test { private: int data1; float data2; public: void insertIntegerData(int d) { data1 = d; cout << "Number: " << data1; } float insertFloatData() { cout << "\nEnter data: "; cin >> data2; return data2; } }; int main() { Test o1, o2; float secondDataOfObject2; o1.insertIntegerData(12); secondDataOfObject2 = o2.insertFloatData(); cout << "You entered " << secondDataOfObject2; return 0; }
Output :
Number: 12 Enter data: 23.3 You entered 23.3
Visit :
Discussion