Do friends break encapsulation?, C/C++ Programming

Assignment Help:

A: No. If they're utilized properly, they increase encapsulation.

You frequently require splitting a class in half while the two halves will have distinct numbers of instances or distinct lifetimes. In these cases, usually the two halves need direct access to each other (the two halves utilized to be in the similar class, thus you haven't enhanced the amount of code that required direct access to data structure; you've simply reshuffled the code in two classes rather than one). The safest method to implement it is to make the two halves friends of each other.

If you employ friends like just defined, you'll keep private things private. People who don't understand this frequently make naive efforts to ignore using friendship in situations such as the above, and frequently they in fact destroy encapsulation. They either employ public data (grotesque!), or they make the data accessible among the halves using public get() and set() member functions. Having a public get() & set() member function for private datum is OK only while the private datum "makes sense" from outside the class (from a user's perspective). In several cases, these get()/set() member functions are approximately as bad as public data: they hide (only) the name of the private datum, however they don't hide the existence of the private datum.

Likewise, if you employ friend functions as a syntactic variant of a class's public access functions, they don't break encapsulation any more than a member function breaks encapsulation. In other terms, a class's friends don't violate the encapsulation barrier: along the class's member functions, they are the encapsulation barrier.

 (Several people think of a friend function as something outside the class. Rather then, try thinking of a friend function as part of the class's public interface. In the class declaration a friend function doesn't violate encapsulation any more than a public member function break encapsulation: both have exactly the similar authority with respect to accessing the class's non-public parts.)

 


Related Discussions:- Do friends break encapsulation?

Program, program to check whether a given point lies inside a rectangle or ...

program to check whether a given point lies inside a rectangle or not

Explain multiple inheritance with a common base, Multiple inheritance with ...

Multiple inheritance with a common base (Hybrid Inheritance) Inheritance is an important and powerful feature of OOP. Only the imagination of the person concerned is the limit.

Nested if else, input marks of c and c++ if c grater than equal to 50 grate...

input marks of c and c++ if c grater than equal to 50 grater than 50 you are pass if c greater than equal to 50 c++ less than 50 than supplementry c++ if c less then 50 and c++ gra

Describe the theoretical concepts of binary files, Question 1 Explain the ...

Question 1 Explain the concept of constructors and destructors in C++ with programming examples Question 2 Explain the concepts and applications of multiple inheritance and v

Change to palindrome, A palindrome is a string that reads the same from bot...

A palindrome is a string that reads the same from both the ends. Given a string S convert it to a palindrome by doing character replacement. Your task is to convert S to palindrome

Program to calculate the average sales for each employee , There are 2...

There are 25 employees in a business. Each employee has 5 sales each day of the month (Assume there are 30 days in each month of the year). Draw a flowchart for a pr

Assyrian keyboard for android, Project Description: I want an app that t...

Project Description: I want an app that the user can download it from the play store and use it as a keyboard for texts and writing. Just like the Samsung keyboard and the arabi

Described container class?explain types of container class, A container cla...

A container class is a class which is used to hold objects in external storage and memory. A container class work as a generic holder. A container class contains a predefined behav

What is a hash function, What is a hash function? Hash function: This ...

What is a hash function? Hash function: This is the method from the set 'K' of keys into the set 'L' of memory addresses.   H: K → L These are used to verify the address

Area under curve, Write a program to find the area under the curve y = f(x)...

Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd