By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,583 Members | 617 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,583 IT Pros & Developers. It's quick & easy.

Code reuse in C++

P: n/a
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!
Jul 19 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
"DPfan" <DP***@yahoo.com> wrote in message
news:Mc*********************@bgtnsc05-news.ops.worldnet.att.net...
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

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.521 / Virus Database: 319 - Release Date: 9/23/2003
Jul 19 '05 #2

P: n/a
On Sun, 26 Oct 2003 19:25:32 GMT, "DPfan" <DP***@yahoo.com> wrote:
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

--

The Ultimate Truth is that there is no Ultimate Truth
Jul 19 '05 #3

P: n/a
DPfan wrote:
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.

Jul 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.