Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Object Oriented Programming (OOP)

Reply
Thread Tools

Object Oriented Programming (OOP)

 
 
Pmb
Guest
Posts: n/a
 
      05-21-2004
Hi. I'm new to this group. I'm refreshing/learning C++ and am starting to
learn Object Oriented Programming (OOP). In discussing this with people I
came up short as to what the benefits of OOP are. For example: As I
understand it, OOP has its main benefit in software reuse. Thus one develops
a software library of classes and this cuts down the overhead of reinventing
the wheel. Someone might say that this can be done with structured
programming with function libraries. So I have a few questions.

1) For those of you who like OOP, why do you like it?
2) Can OOP be accomplished with non-object oriented languages such as C?
3) If you're not part of a software engineering team but are programming
from your own use and don't need to reuse code would you bother with OOP?

Thanks

Pmb


 
Reply With Quote
 
 
 
 
Allan Bruce
Guest
Posts: n/a
 
      05-21-2004

"Pmb" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi. I'm new to this group. I'm refreshing/learning C++ and am starting to
> learn Object Oriented Programming (OOP). In discussing this with people I
> came up short as to what the benefits of OOP are. For example: As I
> understand it, OOP has its main benefit in software reuse. Thus one

develops
> a software library of classes and this cuts down the overhead of

reinventing
> the wheel. Someone might say that this can be done with structured
> programming with function libraries. So I have a few questions.
>
> 1) For those of you who like OOP, why do you like it?


It forces a better design in my opinion, and offers data hiding. Another
advantage is the reduced amount of parameters transferred to and from
functions, since many methods access member variables within a class

> 2) Can OOP be accomplished with non-object oriented languages such as C?


It can be emulated, but from what I have seen is very messy, and isnt
readable.

> 3) If you're not part of a software engineering team but are programming
> from your own use and don't need to reuse code would you bother with OOP?
>


I program for pleasure and use it for many reasons, here is an example:

I have a game which I am programming. The entities in my game follow a
simple heirarchy:

class GameEntity // specifies interface for Step() and Draw(). Has one
member variable "bool Valid"

class Ship : public GameEntity // define a ship which has Shoot(), Die()
etc.

class PlayerShip : publilc Ship // defines the player ship which has input
controls etc.

I follow a similar heirarchy for scenery, for powerups etc. It makes things
a lot neater, and if you incorporate the methods as high up the hierarchy as
possible, the less duplicate code there is.

Allan


 
Reply With Quote
 
 
 
 
nevyn@localhost.localdomain
Guest
Posts: n/a
 
      05-21-2004
Hi, this will be my first post to this group as well...

I've only just started using OOP myself. It's kind of interesting the sort
of mind set you get into. Although I still believe that alot of OOP
implementation is done just plain badly it does make it easier to relate
your code to real 'objects'.

Personally I think both have their place but OOP allows you encapsulate
things a hell of alot better than just straight stuctured.

C doesn't allow for the encapsulation that OOP pushes and so is unsuitable
for OOP - but if you aren't one for the rules and want to make things a
hell of alot harder on yourself, seeing as OOP seems to be a mentality
more than anything, C and possibly even pascal should be able to do it to
some strange and wierd extent.

If programming for your own use, I still think OOP is worthwhile. If at
some later date you wish you go over the code again, it's alot easier
looking at the individual objects and knowing exactly what they relate to
rather than trying to figure out each of the functions. This could of
course be fixed with comments but why bother if you can just code it in?

From working with a friend on the occassional little project, I've found
that we can each work on an object each, pull them together and get it all
working together with very little work involved.

Hope this at least answers some of your questions...

regards, Nevyn.

On Fri, 21 May 2004 07:53:08 -0400, Pmb wrote:

> Hi. I'm new to this group. I'm refreshing/learning C++ and am starting to
> learn Object Oriented Programming (OOP). In discussing this with people I
> came up short as to what the benefits of OOP are. For example: As I
> understand it, OOP has its main benefit in software reuse. Thus one develops
> a software library of classes and this cuts down the overhead of reinventing
> the wheel. Someone might say that this can be done with structured
> programming with function libraries. So I have a few questions.
>
> 1) For those of you who like OOP, why do you like it?
> 2) Can OOP be accomplished with non-object oriented languages such as C?
> 3) If you're not part of a software engineering team but are programming
> from your own use and don't need to reuse code would you bother with OOP?
>
> Thanks
>
> Pmb


 
Reply With Quote
 
Pmb
Guest
Posts: n/a
 
      05-21-2004

<(E-Mail Removed)> wrote in message
news(E-Mail Removed) ldomain...
> Hi, this will be my first post to this group as well...
>
> I've only just started using OOP myself. It's kind of interesting the sort
> of mind set you get into. Although I still believe that alot of OOP
> implementation is done just plain badly it does make it easier to relate
> your code to real 'objects'.
>
> Personally I think both have their place but OOP allows you encapsulate
> things a hell of alot better than just straight stuctured.
>
> C doesn't allow for the encapsulation that OOP pushes and so is unsuitable
> for OOP - but if you aren't one for the rules and want to make things a
> hell of alot harder on yourself, seeing as OOP seems to be a mentality
> more than anything, C and possibly even pascal should be able to do it to
> some strange and wierd extent.
>
> If programming for your own use, I still think OOP is worthwhile. If at
> some later date you wish you go over the code again, it's alot easier
> looking at the individual objects and knowing exactly what they relate to
> rather than trying to figure out each of the functions. This could of
> course be fixed with comments but why bother if you can just code it in?
>
> From working with a friend on the occassional little project, I've found
> that we can each work on an object each, pull them together and get it all
> working together with very little work involved.
>
> Hope this at least answers some of your questions...


Yes. Thanks.

Would you use OOP if you were writing a program to do some number crunching,
e.g. solving a differential equation etc.?

Pmb


 
Reply With Quote
 
Pmb
Guest
Posts: n/a
 
      05-21-2004

"Allan Bruce" <(E-Mail Removed)> wrote in message
news:c8kraq$3fv$(E-Mail Removed)2surf.net...
>
> "Pmb" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > Hi. I'm new to this group. I'm refreshing/learning C++ and am starting

to
> > learn Object Oriented Programming (OOP). In discussing this with people

I
> > came up short as to what the benefits of OOP are. For example: As I
> > understand it, OOP has its main benefit in software reuse. Thus one

> develops
> > a software library of classes and this cuts down the overhead of

> reinventing
> > the wheel. Someone might say that this can be done with structured
> > programming with function libraries. So I have a few questions.
> >
> > 1) For those of you who like OOP, why do you like it?

>
> It forces a better design in my opinion, and offers data hiding. Another
> advantage is the reduced amount of parameters transferred to and from
> functions, since many methods access member variables within a class
>
> > 2) Can OOP be accomplished with non-object oriented languages such as C?

>
> It can be emulated, but from what I have seen is very messy, and isnt
> readable.
>
> > 3) If you're not part of a software engineering team but are programming
> > from your own use and don't need to reuse code would you bother with

OOP?
> >

>
> I program for pleasure and use it for many reasons, here is an example:
>
> I have a game which I am programming. The entities in my game follow a
> simple heirarchy:
>
> class GameEntity // specifies interface for Step() and Draw(). Has one
> member variable "bool Valid"
>
> class Ship : public GameEntity // define a ship which has Shoot(), Die()
> etc.
>
> class PlayerShip : publilc Ship // defines the player ship which has input
> controls etc.
>
> I follow a similar heirarchy for scenery, for powerups etc. It makes

things
> a lot neater, and if you incorporate the methods as high up the hierarchy

as
> possible, the less duplicate code there is.


Thanks.

As I asked Nevyn, would you use OOP if you were writing a program to do some
number crunching, e.g. solving a differential equation etc.?

Pmb


 
Reply With Quote
 
Allan Bruce
Guest
Posts: n/a
 
      05-21-2004
> Thanks.
>
> As I asked Nevyn, would you use OOP if you were writing a program to do

some
> number crunching, e.g. solving a differential equation etc.?
>
> Pmb
>
>


It entirely depends!

I would use OOP if it were part of a bigger project, no two ways about it.
For example, one class may be a solver for differenial equations. One could
have linear ODEs and others done within this class.

If you mean, would I program an OOP just to solve one equation, then the
answer is no. I would do it in Matlab!

Basically, what I am trying to say is, if I am programming something of
medium scale or larger, then I would do it using OOP, if it is small scale,
i.e. a few lines of code, then I wouldn't program it in a low-level
language, I would use other tools, e.g. Matalab.

Allan


 
Reply With Quote
 
bartek
Guest
Posts: n/a
 
      05-21-2004
"Pmb" <(E-Mail Removed)> wrote in
news:(E-Mail Removed):

(...)

> Would you use OOP if you were writing a program to do some number
> crunching, e.g. solving a differential equation etc.?


Why not? http://www.oonumerics.org/

"Object oriented" describes a programming paradigm. As all other paradigms,
you can see it in different perspectives, depending on your own point of
view.

C++ being a multi-paradigm language, allows you to freely mix OO concepts
with plain imperative 'C' programming style, and even functional style.
On one hand, it's much more versatile and powerful. On the other, it gives
*a lot* of opportunities for misuse. This is all obvious, though.

--
:: bartekd [at] o2 [dot] pl

 
Reply With Quote
 
Shashank
Guest
Posts: n/a
 
      05-21-2004
Hi Pmb,

I like component programming in C++. I also like programming OOP. Simply because
it allows you to comprehend the problems/ solution in terms of objects rather
then functions. It just allows you to structure your program better then what is
possible using even C but in a easier way.

Encapsulation, polymorphism, inheritance are features are OOAD and can be
achieved using C as well, but yeah simple to achieve or design in C++.

Similarly re-use or not you may do in C as well as C++. Its just because you can
comprehend the problem and solution easier in OO methodology that enhances
chances of writing code that may be re-used.

So you will find, moving from C to C++ (or object oriented) is primarily because
it allows to create well structured software easily (because of some features as
mentioned above, that are by default part of objects then in structure where
you will have to code for it!!) compared to structure language.

regards,
Shashank

Pmb wrote:

> Hi. I'm new to this group. I'm refreshing/learning C++ and am starting to
> learn Object Oriented Programming (OOP). In discussing this with people I
> came up short as to what the benefits of OOP are. For example: As I
> understand it, OOP has its main benefit in software reuse. Thus one develops
> a software library of classes and this cuts down the overhead of reinventing
> the wheel. Someone might say that this can be done with structured
> programming with function libraries. So I have a few questions.
>
> 1) For those of you who like OOP, why do you like it?
> 2) Can OOP be accomplished with non-object oriented languages such as C?
> 3) If you're not part of a software engineering team but are programming
> from your own use and don't need to reuse code would you bother with OOP?
>
> Thanks
>
> Pmb


 
Reply With Quote
 
Jeff Relf
Guest
Posts: n/a
 
      05-21-2004
Hi Pmb, a.k.a. Pete,

In an e-mail, you asked me why I think OOP is modal.

Google, " define:modal ":
http://www.google.com/search?q=defin...al&btnG=Search
" Pertaining to modes. "
...
" A dialog is modal if its parent application
is blocked from further activity
^^^^^^^
until the dialog has completed. See non-modal. "

OOP is a hierarchy,
and, like all hierarchies, it's usually overdone.

The flatter one can keep one's data
the more accessible it becomes.

For example, take a perfectly flat map of the world,
a user simply pans and zooms to see what he wants.
No need to go browsing through
some absurd tree of rigid directories,
branching here and there, going ever deeper,
getting ever more lost.

That's the problem with OOP, it's too convoluted.

I hate pop-ups for the same reason,
as each dialog window pops up, you enter another mode,
it's annoying. Flat is where it's at.

In my programs I make a real effort to
eliminate All pop-ups.
I also don't like sub-sub-sub-sub menus.

So I replace them with a maximized window
( where my Win98 taskbar is the only other window ).

Then I navigate using different combinations and durations
of buttons on my 5 button wheel mouse ...
So that everything is accessible all the time,
no need to consider what mode I might be in.

The terrain ( i.e. the data ) is keep flat like a map ...
I just pan and zoom.
 
Reply With Quote
 
Claudio Puviani
Guest
Posts: n/a
 
      05-21-2004
"Pmb" <(E-Mail Removed)> wrote
> Hi. I'm new to this group. I'm refreshing/learning C++ and am starting to
> learn Object Oriented Programming (OOP). In discussing this with people I
> came up short as to what the benefits of OOP are. For example: As I
> understand it, OOP has its main benefit in software reuse. Thus one develops
> a software library of classes and this cuts down the overhead of reinventing
> the wheel. Someone might say that this can be done with structured
> programming with function libraries. So I have a few questions.
>
> 1) For those of you who like OOP, why do you like it?


Managing complexity is a cornerstone of programming and OOP is one tool that
helps do that. C++ offers other paradigms, including structured and generic
programming, that also help in managing complexity.

> 2) Can OOP be accomplished with non-object oriented languages
> such as C?


Yes it can. It's just less automated. In the same vein, you can do functional,
declarative, and symbolic programming with C++. The language just doesn't give
you shortcuts to do so.

> 3) If you're not part of a software engineering team but are
> programming from your own use and don't need to reuse
> code would you bother with OOP?


If you're not a professional carpenter, but you have to put in a screw, will you
use a hammer just because it's only for your personal use? Of course not. You use
the tool that's most appropriate to what you're doing. You use OOP if the
solution can be best expressed in an OO manner. If it can best be expressed
otherwise, you don't use OOP.

Claudio Puviani


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
New C++ Book - C++ For Artists: The Art. Philosophy, And Science Of Object-Oriented Programming Rick Miller C++ 1 09-19-2013 02:55 AM
class-oriented rather than object-oriented? notnorwegian@yahoo.se Python 2 05-26-2008 04:42 PM
C (functional programming) VS C++ (object oriented programming) Joe Mayo C Programming 168 10-22-2007 01:00 AM
Object oriented does not mean class oriented rolo Ruby 3 04-09-2004 02:51 PM
About object oriented programming Martin C++ 5 09-11-2003 06:15 PM



Advertisments