adsense


Thursday, 26 November 2015

C++ LANGUAGE PURE VIRTUAL FUNCTION

COMPUTER LANGUAGES HTML,C,C++.JAVA,.NET AND MULTIMEDIA basics and programs click home button



C++ LANGUAGE PURE VIRTUAL FUNCTION




Pure Virtual Functions 


It is possible that you want to include a virtual 
function in a base class so that it may be redefined 
in a derived class to suit the objects of that class, 
but that there is no meaningful definition you could 
give for the function in the base class. 


We can change the virtual function area() in 
the base class to the following:

 
class Shape { 
   protected: 
      int width, height; 
   public: 
      Shape( int a=0, int b=0) 
      { 
         width = a; 
         height = b; 
      } 
      // pure virtual function 
      virtual int area() = 0; 
}; 
The = 0 tells the compiler that the function has no 
body and above virtual function will be called pure 
virtual function. 
 
Data abstraction refers to providing only essential 
information to the outside world and hiding their 
background details, i.e., to represent the needed 
information in program without presenting the details. 

Data abstraction is a programming (and design) 
technique that relies on the separation of interface 
and implementation. 

Let's take one real life example of a TV, which you 
can turn on and off, change the channel, adjust the 
volume, and add external components such as speakers,
 VCRs, and DVD players, BUT you do not know its 
internal details, that is, you do not know how it 
receives signals over the air or through a cable, 
how it translates them, and finally displays them on the screen. 

Thus, we can say a television clearly separates its 
internal implementation from its external interface 
and you can play with its interfaces like the power 
button, channel changer, and volume control without 
having zero knowledge of its internals. 

In C++, classes provides great level of data abstraction. 
They provide sufficient public methods to the outside 
world to play with the functionality of the object and 
to manipulate object data, i.e., state without actually 
knowing how class has been implemented internally. 

For example, your program can make a call to the sort() 
function without knowing what algorithm the function 
actually uses to sort the given values. In fact, the 
underlying implementation of the sorting functionality 
could change between releases of the library, and as long 
as the interface stays the same, your function call will still work. 

In C++, we use classes to define our own abstract data types 
(ADT). You can use the cout object of class ostream to stream 
data to standard output like this: 

#include <iostream> 

using namespace std; 
 
int main( ) 
{ 
   cout << "Hello C++" <<endl; 
   return 0; 
} 


DATA ABSTRACTION 

Here, you don't need to understand how cout displays 
the text on the user's screen. You need to only know 
the public interface and the underlying implementation 
of ‘cout’ is free to change. 


No comments: