Cryptography Reference
In-Depth Information
The objects that thus arise take on, in addition to their new properties, all the
properties of the old objects. One might say that they inherit these properties. The
principle of information hiding remains intact. The chances of error are greatly
reduced, and productivity is increased. It is like a dream come true.
As an object-oriented programming language C++ possesses the requisite
mechanisms for the support of these principles of abstraction. 2 These, however,
represent only a potential, but not a guarantee, of being used in the sense of
object-oriented programming. To the contrary, the switch from conventional
to object-oriented software development requires a considerable intellectual
retooling. This is particularly apparent in two respects: On the one hand, the
developer who has hitherto achieved good results is forced to devote considerably
more attention to the modeling and design phases than what was usually required
in traditional methods of software development. On the other hand, in the
development and testing of new classes the greatest care is required to obtain
error-free building blocks, since they will go on to be used in a great variety of
future applications. Information hiding can also mean bug hiding , since it defeats
the purpose of the idea of object-oriented programming if the user of a class must
become familiar with its inner workings in order to find a bug. The result is that
errors contained in a class implementation are inherited together with the class,
so that all subclasses will be infected with the same “hereditary disease.” On the
other hand, the analysis of errors that occur with the objects of a class can be
restricted to the implementation of the class, which can greatly reduce the scope
of the search for the error.
All in all, we must say that while there are strong trends in the direction
of using C++ and Java as programming languages, nonetheless, the principles
of object-oriented programming beyond an understanding of the essentially
complex elements of these languages are multifaceted, and it will be a long time
before they are used as a standard method of software development. However,
in the meantime, there are powerful and robust tools available that strongly
support the development process, from modeling up through the generation of
executable code.
Thus the title of this chapter refers not to object-oriented programming
and the use of C++ in general, but to the mechanisms offered therein and
their significance for our project. These enable the formulation of arithmetic
operations with large numbers in a way that is so natural that it is as if they
belonged to the standard operations of the programming language. In the
following sections, therefore, we will not be presenting an introduction to C++,
but a discussion of the development of classes that represent large natural
numbers and that export functions to work with these numbers as abstract
2
C++ is not the only object-oriented language. Others are Simula (the precursor of all object-
oriented languages), Smalltalk, Eiffel, Oberon, and Java.
 
Search WWH ::




Custom Search