Concept explainers
Class Access Modifiers:
The feature of object oriented
There are three access specifiers used in the class to restrict the access of members inside the class. They are as follows:
- Public
- Protected
- Private
For classes and members, the default access specifier is “private”.
Sample code:
/* class Base defines the member functions and variables with appropriate access modifiers */
class Base
{
public:
//public members
protected:
// protected members
private:
// private members
};
Explanation of Solution
Private members:
From outside of a class, a member variable that is private could not be accessed, or viewed. Class could access members that are private and friend functions only.
By default, class members are private, for example in class given below “width” denotes a private member, which denotes that until a label is provided to a member, it would be assumed as a private member:
/* class lBox defines member functions “lsetWidth” and “lgetWidth”*/
class lBox
{
// Variable declarations
double lwidth;
public:
// Variable declarations
double length;
// Member function declarations
void lsetWidth( double lwid );
double lgetWidth( void );
};
The data is defined in private members, and related functions are defined in public section, so that it could be called from outside of a class, as shown in below program.
This program shows the usage of “Private” access modifier, in which member variables could not be accessed from outside of class.
// Select header files
#include <iostream>
using namespace std;
Declare the class lBox that defines the member functions “lsetWidth()” and “lgetWidth()” to set and return the width for box.
//Create the class
class lBox
{
public:
// Variable declarations
double length;
// Member function declarations
void lsetWidth( double lwid );
double lgetWidth( void );
private:
// Variable declarations
double lwidth;
};
Define the member function lgetWidth() to return width of box...
Explanation of Solution
Protected members:
A protected member function or variable denotes similarity to a private member. That is, from outside of a class, accessing a member variable or function that is protected is not possible.
- An additional benefit is that they can be accessed within child classes which are known as derived classes.
- In below example, “width” member could be accessed by the derived class “SmallBox” member function.
This program shows the usage of “Protected” access modifier, in which member variables could not be accessed from outside of a class, but it could be accessed within child classes which are termed as derived classes.
// Select header files
#include <iostream>
using namespace std;
Declare the class lBox that defines the variable “width” to set and return the width for box.
// class lBox defines “width” as a protected variable”
class lBox
{
protected:
// Variable declarations
double width;
};
Declare the class “SmallBox” that defines the member functions “lsetSmallWidth()” and “lgetSmallWidth()” to set and return the width for box...
Want to see the full answer?
Check out a sample textbook solutionChapter 1 Solutions
EBK DATA STRUCTURES AND ALGORITHMS IN C
- The pillar that allows you to build a specialized version of a general class, but violates encapsulation principles isarrow_forwardClass members may be declared as... overloaded private or public attributes constructorsarrow_forwardClass diagram is all about classes and their: a. Interrelationships Ob. Attributes c. Operations d. None of thesearrow_forward
- Abstract classes and interfaces may be used interchangeably to specify the behavior of objects.How do you know whether you need an interface or an abstract class?arrow_forwardPROGRAMMING LANGUAGE: JAVA SUBJECT: ADVANCED OOP WITH JAVA QUESTION NO 1: Make an abstract class named A1 with 2 abstract methods, then implement those methods in child class.arrow_forwardWhat is an abstract class?arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education