Code reuse in C++

D

DPfan

What's exactly the meaning of "code reuse" in C++?

Why such kind of reuse have more advantages over the counterpart in other
language like in C?

How is "code reuse" realized in C++? By composition mainly? What're
others?

Thanks in advance for your comments!
 
D

David B. Held

DPfan said:
What's exactly the meaning of "code reuse" in C++?

I would say the best example of code reuse is the C++
library.
Why such kind of reuse have more advantages over the
counterpart in other language like in C?

Reuse is good in any language. C++ just happens to make
it fairly easy in some cases.
How is "code reuse" realized in C++? By composition
mainly? What're others?

The best kind of code reuse is realized in template libraries,
where types don't have to be rewritten because of minor
dependencies.

Dave
 
R

rossum

What's exactly the meaning of "code reuse" in C++?

Why such kind of reuse have more advantages over the counterpart in other
language like in C?

How is "code reuse" realized in C++? By composition mainly? What're
others?

Thanks in advance for your comments!
Classes: not only can old code be used in the normal way, by including
an existing class in your code. You can also get the old code in the
class to call a new function without having to rewrite the old code.
As long as the function is declared virtual in the old code then the
old code will happily call the new function if you provide a new
version of the virtual function.

rossum
 
L

lilburne

DPfan said:
What's exactly the meaning of "code reuse" in C++?

Code reuse is something you have to consider in the design
of the components you are building. In particular you need
to think in terms other than your immediate needs, and
devise code that does only one particular job. The standard
C library is good example of code that can be reused, as is
the UNIX text utilities.

But you must realise that there is a cost involved in
writing code that can be reused. Just by writing in C++
won't guarantee that the code you write is reusable.
Why such kind of reuse have more advantages over the counterpart in other
language like in C?

In C the things that you can reuse are functions, and to
some extent data structures. C++ gives you other elements
like classes, templates, and polymorphism. You therefore
have a richer set of things that you can reuse.
How is "code reuse" realized in C++? By composition mainly? What're
others?

I'll thow polymorphism into the pot. Say you have a base
class Person from which you can obtain the city where the
person lives and you want to find all the instances of
Person in a list that live in city X. Write a function to do
that is pretty simple either in C or C++ but not
particularly reusable, because you can only process Person
objects. Now consider that your list contains pointers to
instances of Person rather than Person objects directly
(perhaps using some smart pointer type). Now someone having
derived a class Employee from Person could build a list of
employees which they pass to the find function. The function
is now being reused to find employees. Perhaps Person is
used to derive a class Player in some game scenario, your
find function will still work. In fact it will still work
given a list of Employees and Players.

And there is a deeper reuse going on here, which is one of
the main rationals for OO, the reuse of the concept Person.
Personally I always prefer to see code that operates on the
root of a class heirarchy, I'd much rather code in terms of
Curve or Surface, than Bezier or SweptSurface. The result is
far more reusable.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top