adsense


Thursday, 26 November 2015

C++ LANGUAGE DESIGNING STRATEGY

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



C++ LANGUAGE DESIGNING STRATEGY






Designing Strategy 


Most of us have learnt to make class members private by 
default unless we really need to expose them. That's 
just good encapsulation. 
This is applied most frequently to data members, 
but it applies equally to all members, including 
virtual functions. 
 
An interface describes the behavior or capabilities 
of a C++ class without committing to a particular 
implementation of that class. 
The C++ interfaces are implemented using abstract classes 
and these abstract classes should not be confused with 
data abstraction which is a concept of keeping 
implementation details separate from associated data. 
A class is made abstract by declaring at least one of its 
functions as pure virtual function. A pure virtual function 
is specified by placing "= 0" in its declaration as follows: 

class Box 
{ 
   public: 
      // pure virtual function 
      virtual double getVolume() = 0; 
   private: 
      double length;      // Length of a box 
      double breadth;     // Breadth of a box 
      double height;      // Height of a box 
}; 
The purpose of an abstract class (often referred to as an ABC) 
is to provide an appropriate base class from which other 
classes can inherit. Abstract classes cannot be used to 
instantiate objects and serves only as an interface. 
Attempting to instantiate an object of an abstract class 
causes a compilation error. 

Thus, if a subclass of an ABC needs to be instantiated, 
it has to implement each of the virtual functions, which 
means that it supports the interface declared by the ABC. 
Failure to override a pure virtual function in a derived class, 
then attempting to instantiate objects of that class, is a compilation error. 

Classes that can be used to instantiate objects are called concrete classes. 


No comments: