Object Oriented Programming (OOP)

Discussion in 'C++' started by Pmb, May 21, 2004.

  1. Pmb

    Pmb Guest

    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
     
    Pmb, May 21, 2004
    #1
    1. Advertising

  2. Pmb

    Allan Bruce Guest

    "Pmb" <> wrote in message
    news:...
    > 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
     
    Allan Bruce, May 21, 2004
    #2
    1. Advertising

  3. Pmb

    Guest

    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
     
    , May 21, 2004
    #3
  4. Pmb

    Pmb Guest

    <> wrote in message
    news:p...
    > 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
     
    Pmb, May 21, 2004
    #4
  5. Pmb

    Pmb Guest

    "Allan Bruce" <> wrote in message
    news:c8kraq$3fv$2surf.net...
    >
    > "Pmb" <> wrote in message
    > news:...
    > > 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
     
    Pmb, May 21, 2004
    #5
  6. Pmb

    Allan Bruce Guest

    > 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
     
    Allan Bruce, May 21, 2004
    #6
  7. Pmb

    bartek Guest

    "Pmb" <> wrote in
    news::

    (...)

    > 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
     
    bartek, May 21, 2004
    #7
  8. Pmb

    Shashank Guest

    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
     
    Shashank, May 21, 2004
    #8
  9. Pmb

    Jeff Relf Guest

    Pan and zoom vs. OOP.

    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=define:modal&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.
     
    Jeff Relf, May 21, 2004
    #9
  10. "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?


    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
     
    Claudio Puviani, May 21, 2004
    #10
  11. Pmb

    tom_usenet Guest

    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?


    It makes it much easier to modify behaviour in large projects (and to
    think about what should be modifiable), and also gives a reasonable
    way of structuring such projects.

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


    Yes, but the syntax is a mess.

    >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?


    For small projects I sometimes use "object based" programming, using
    classes to divide the program into modules. Many small projects (as in
    just a few thousand LOC) have little scope to use polymorphism
    themselves, but even then I'll usually use OOP libraries at some
    point. Any time you write "std::cout" you are using OOP...

    Tom
    --
    C++ FAQ: http://www.parashift.com/c -faq-lite/
    C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
     
    tom_usenet, May 21, 2004
    #11
  12. Pmb

    Pmb Guest

    "Allan Bruce" <> wrote in message
    news:c8kte3$473$2surf.net...
    > > 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!


    No. I'm thinking more or less number crunching with C++. E.g. suppose you
    were tasked with creating a library function for the confluent
    hypergeometric function of the first kind, or something as equally
    obnoxious. :)

    One can't always turn to Mathlab, especially if you don't have it.

    >
    > 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.


    and if you were someone like me who didn't have Matlab?

    Thanks

    Pmb
     
    Pmb, May 21, 2004
    #12
  13. Pmb

    G. Morgen Guest

    oops [was: Re: Object Oriented Programming (OOP)]

    I suggest another name: OOPS
    Object Oriented Ploughramming Swine
     
    G. Morgen, May 21, 2004
    #13
  14. Pmb

    Allan Bruce Guest

    "Pmb" <> wrote in message
    news:...
    >
    > "Allan Bruce" <> wrote in message
    > news:c8kte3$473$2surf.net...
    > > > 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!

    >
    > No. I'm thinking more or less number crunching with C++. E.g. suppose you
    > were tasked with creating a library function for the confluent
    > hypergeometric function of the first kind, or something as equally
    > obnoxious. :)
    >
    > One can't always turn to Mathlab, especially if you don't have it.
    >
    > >
    > > 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.

    >
    > and if you were someone like me who didn't have Matlab?
    >
    > Thanks
    >
    > Pmb
    >
    >


    I think what you are trying to get at, is, OOP is slower for number
    crunching. If so, then this is rubbish. Why would it be slower? OOP is
    just as fast as any other programming paradigm for number crunching. If
    this is not what you are trying to get at, then perhaps rephrasing your
    question is needed?

    OOP is about design, number crunching is an implementation within a design.
    Cant say much more without clarification of what you want to know...

    Allan
     
    Allan Bruce, May 21, 2004
    #14
  15. Pmb

    G. Morgen Guest

    Re: oops [was: Re: Object Oriented Programming (OOP)]

    > I suggest another name: OOPS
    > Object Oriented Ploughramming Swine


    Progscriptum: No personal offence meant
     
    G. Morgen, May 21, 2004
    #15
  16. Pmb

    Derek Guest

    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?


    The big three reasons to use it (encapsulation,
    inheritance, polymorphism) help me structure code in a
    well-defined, maintainable, and (usually) reusable way.

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


    Absolutely, but it's not pretty. There are whole C
    libraries that are OO by convention, but it's not a pretty
    sight. If you want OOP, it's best to use a language that
    supports it directly.

    > 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?


    See #1. Even if I don't plan to reuse code, OOP helps me
    organize problems in a well-defined, maintainable form.
    This has value even if I'm the only customer, so to speak.
    Also remember that C++ is a multi-paradigm language:
    it support OOP, but doesn't require it. If structured
    programming makes more sense than OOP for a part of your
    problem, then C++ lets you mix SP and OOP freely. That's a
    big reason it's so powerful.
     
    Derek, May 21, 2004
    #16
  17. Pmb

    Pmb Guest

    "Allan Bruce" <> wrote

    > I think what you are trying to get at, is, OOP is slower for number
    > crunching. If so, then this is rubbish. Why would it be slower? OOP is
    > just as fast as any other programming paradigm for number crunching. If
    > this is not what you are trying to get at, then perhaps rephrasing your
    > question is needed?


    That wasn't what I was getting to. I was wondering if some problems more
    readily lend themselves to structured programming in that they are easier to
    write etc. Speed was not what I had in mind. OOP works best when you're
    modeling real world objects right? What about abstract things for which
    there may be no real world thing which to model.? Area under a curve etc.
    Perhaps math wasn't the best example to use but it was what came to mind.
    I'll have better questions as I learn.

    Pmb
     
    Pmb, May 21, 2004
    #17
  18. Pmb

    Pmb Guest

    "Derek" <> wrote

    >If structured
    > programming makes more sense..


    That's what I'm thinking. Do you know of a way to describe in general when
    to use OOP rather than structured programming? I.e. are some types of tasks
    better left to structured programming?

    Thanks

    Pmb
     
    Pmb, May 21, 2004
    #18
  19. Pmb

    osmium Guest

    Claudio Puviani writes:

    > > 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.


    As I understood the OPs question, and if you wish to use analogies, ISTM a
    more appropriate analogy would be "Would you build a skyscraper out of
    wood?"

    People working alone produce small programs. A group of a 100 or so
    programmers face a new set of problems.

    I have been thinking of posting a longer message to this thread if I get
    around to it, but for now I would say that if a problem has a lot of
    "state", it is probably time to use OOP. Continuing the C vs. C++ base, (as
    opposed to a generic OOP base): if you find yourself using more than a very
    few static variables, I think you've got an OOP problem on your hands.
     
    osmium, May 21, 2004
    #19
  20. Pmb

    Allan Bruce Guest

    "Pmb" <> wrote in message
    news:...
    >
    > "Allan Bruce" <> wrote
    >
    > > I think what you are trying to get at, is, OOP is slower for number
    > > crunching. If so, then this is rubbish. Why would it be slower? OOP

    is
    > > just as fast as any other programming paradigm for number crunching. If
    > > this is not what you are trying to get at, then perhaps rephrasing your
    > > question is needed?

    >
    > That wasn't what I was getting to. I was wondering if some problems more
    > readily lend themselves to structured programming in that they are easier

    to
    > write etc. Speed was not what I had in mind. OOP works best when you're
    > modeling real world objects right? What about abstract things for which
    > there may be no real world thing which to model.? Area under a curve etc.
    > Perhaps math wasn't the best example to use but it was what came to mind.
    > I'll have better questions as I learn.
    >
    > Pmb
    >
    >


    Ok, I understand now. There are definately some examples that are obvious to
    be implemented in OOP. Other problems may not be as obvious, for example
    your maths example. Here, there are no 'objects' as such, but this is when
    I use OOP for modules. For example, I would create a class for my Maths
    Module, and one for my GUI.. This isnt OOP as such, but you can still
    benefit from the advantages of OOP.
    Allan
     
    Allan Bruce, May 21, 2004
    #20
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rick Miller
    Replies:
    1
    Views:
    495
    Ranagatti
    Sep 19, 2013
  2. Martin
    Replies:
    5
    Views:
    363
    E. Robert Tisdale
    Sep 11, 2003
  3. Joe Mayo
    Replies:
    168
    Views:
    3,326
    David Thompson
    Oct 22, 2007
  4. Replies:
    2
    Views:
    433
    Bruno Desthuilliers
    May 26, 2008
  5. rolo
    Replies:
    3
    Views:
    175
    Robert Klemme
    Apr 9, 2004
Loading...

Share This Page