NOTE: This discussion about OOP programming with plain C was started as an offtopic discussion on the SDL list and moved to this gameprogrammer list. I invited the use of my audio_lib code found on the Gameprogrammer wiki here (http://gameprogrammer.com/gpwiki/Audio_lib) as an example for discussion. On 12/26/05, Matthew Weigel <unique@xxxxxxxxxxx> wrote: > > No, actually, data is inherent to *objects*, not classes, except > metadata about objects of the class. Objects are fairly concrete > things, you can point to them or reference them or assign them, and they > have a type (which is the class). I understrand that objects are instances of classes. > I'd recommend reading that article more closely... > > "According to the object-oriented principles, the verb is attached to > the object and logic associated to the requirement is handled in the > object." I am a little fuzzy about what this is saying. It seems to be a little abstract. I am not sure what "the verb" is in programming. I do understand that the "logic associated to the requirement is handled in the object". That is why I said that the methods were an interface to the data. > "Widely-used terminology distinguishes object-oriented programming from > object-based. The former is held to include inheritance (described > below), while the latter does not." I do not do anything with inheritance, so it seems my programming style would more presicely be called "object-based programming". On the other hand there does not seem to be a wikipedia page for "object based programming", so OOP _also_ appears to be a more generic term for any sort of programming with objects (OBP is discussed in this entry on OOP, instead of having its own entry, for example). I do note this quote: "OOP is subject to much contention as to its precise definition or its principal ideas." So perhaps it is not unusual that we have different ideas about it. > That doesn't really say anything about the quality of your software, > just how you wrote it. I understand. > Writing in C, without a lot of overhead and effort, isn't going to be OOP. In strict terms (with inheritance), I agree. However I was claiming OOP in general terms as I quoted before: "OOP is the practice of writing program text decomposed in modules that encapsulate the representation of one data type per module" and I believe my audio_lib code is object based in the above sense. It is basically a library of 3 modules each with a single data type: 1. audio module that basically encapsulates a boolean value of whether the audio port is open, or not. 2. music module that encapsulates a single music item 3. sound module that encapsulates an array for up to 25 sound effects. As an anti example, look at this SDL_Mixer code: http://www.kekkai.org/roger/sdl/mixer/ This code is fine, but it is not object based. The data is global, and you can not take out a module and use it in some other project. You can copy the example, but there are no reusable modules here. My code is modularized (Note: I am not saying it is better, I am just saying it is modularized). Chris -- E-Mail: Chris Nystrom <cnystrom@xxxxxxxxx> Business: http://www.shaklee.net/austin Blog: http://conversazione.blogspot.com/ AIM: nystromchris --------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html