[linux-audio-dev] (OT) C++ flame war

Martijn Sipkema msipkema at sipkema-digital.com
Wed Feb 5 21:32:01 UTC 2003


> > You are not forced to define the private data members and functions at
the
> > same time as the public ones in C++. The way to handle this is to put
the public
> > interface in a pure virtual class:
>
> In my opinion (please note that this IS an opinion) the method you propose
> is at least as ugly as any other way of keeping a class's private data
members
> private. IMO, using C and doing

I don't see what makes the method I propose, and that most C++ programmers
use, ugly. It is much cleaner and explicit that your method below.

>     typedef void Object ;
>
>     Object * Object_new (/* parameters */) ;

You cannot create an Object on the stack. With C++ classes you can. This
makes resource management much easier.

>     int method_1 (Object *object, /* parameters */) ;

This is not type safe. I suppose this function method_1 then calls another
function
via a pointer stored somewhere in *object?

>     void Object_delete (void) ;

void Object_delete(Objects *object); ?

> and then using a struct (return a pointer to it from Object_new()) in the
> implementation file is neater and works better.

I think it is less flexible, less readable and error prone.

> If you think C++ is great, then you are entitled to your opinion. In my
> experience, the C++ boosters are far pushier with their form of religion
> than the people who prefer C to C++.

Hmm. I tend to think it's the other way round. (the standard "C++ is slow",
"C++ isn't really OO", etc. arguments are quite often seen.)

> > I think most of the arguments in the article are not valid,
>
> Most of the arguments or just the ones relating to C++? I did talk about
> stuff other than C++ in that article.

I meant only the ones related to C++.

[...]
>    2) OO can be done in Standard C.

Sure. But the language does not support it, it merely enables its use.

>    3) Some people (me included) might prefer doing OO programing in C
>       rather than C++.

It is not up to me to tell you what language to use. As you in your article
talked
how you think C is a better language, I gave my point of view.

--ms











More information about the Linux-audio-dev mailing list