|
Hi!
Is it possible to code classes, polymorphism and every other
Object oriented concepts in C also?
|
|
|
|
|
There's an app article for that: Polymorphism in C[^]
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
Thank you Sir! for the quick reply. Can you tell me what is the difference between C & C++ then?
Why C++ if C could do all things that C++ can do? Please give me some explanation.
|
|
|
|
|
C is NOT an objected oriented programming language. It was never meant to be. Since you asked if it's possible to achieve polymorphism with C, I linked you to an article. C++ on the other hand, was meant to be an object oriented programming language.
pix_programmer wrote: Why C++ if C could do all things that C++ can do?
Why write C code if x86 assembly code can do all the things that C can do? The same logic applies here.
C++ was designed to be a object oriented programming language (like I already said), and that's why you would use it to write object oriented code. I won't write C code, unless may be if I'm writing a device driver or a program that would run in an embedded device with very minimal resources to spare.
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
Rajesh R Subramanian wrote: I won't write C code, unless may be if I'm writing a device driver or a program that would run in an embedded device with very minimal resources to spare
Sir! Please don't take it in the other way. I attended one Embedded interview. The interviewer asked the above question. I don't know what is the answer. That's why I asked the genius. What would be the perfect answer to the following question of the interviewer?
What is the difference between C & C++?
|
|
|
|
|
What is the difference between C & C++?
C++ natively supports more programming paradigms than C.
C was made for procedural programming, and C++ supports this just as well, but also supports object-oriented and generic programming.
|
|
|
|
|
Cool Cow Orjan wrote: C++ natively supports more programming paradigms than C.
nice answer.
Watched code never compiles.
|
|
|
|
|
pix_programmer wrote: What is the difference between C & C++?
See here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Some people are making such thorough preparation for rainy days that they aren't enjoying today's sunshine." - William Feather
|
|
|
|
|
Very good.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thank you.
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
When we say C++ supports OOP, it also means that the C++ compiler understands and compiles the OOP syntax.
Since C does not understand OOP, you have to write all the code yourself.
For example, OOP call the constructor when an object is created.
This is nothing but calling a function just after allocating memory for a data type.
In C++ you simply have to write a constructor according to the rules of a constructor.
But in C, you have to write a function and call that in code.
|
|
|
|
|
You don't need an object-oriented language to do object-oriented programming. Going back to C once after many years of C++, I noticed I was using typedefs more effecively, as a substitute for "class". You can also use static members in C to simulate the private members of a C++ class.
The Decorator design pattern (http://en.wikipedia.org/wiki/Decorator_pattern ) can be used to add inheritance to languages that don't have it, like C.
The basic idea is that the "virtual" methods of each "class" (typedef'd struct) have a function pointer that can be set to a function in a parent class. If the pointer is non-NULL, it's called to simulate inheritance.
|
|
|
|
|
Alan Balkany wrote: You can also use static members in C to simulate the private members of a C++
class.
Not sure what that statement means.
Static in C is not equivalent to class members. On can use a struct in C to contain member variables.
If one wants to mimic 'private' (which I think is overkill) then one can use a struct whose scope is limited to the C file and which is allocated when a more globally visible struct (different one) is allocated.
|
|
|
|
|
I meant static functions in C aren't visible outside the file they're declared in, which can be used to simulate private functions in C++.
|
|
|
|
|
While you've got plenty of useful responses already I'd like to add the fact that early C++ compilers were in fact pre-compilers that translated C++ code into C code. However, these precompilers had a very hard time when it came to templates, and therefore these early C++ 'front-ends' were not able to support the full template syntax.
In view of your question, since Templates are not a neccessary concept for OOP, C can clearly be used for OOP. It is just, as others have already pointed out, not very well suited to it.
|
|
|
|
|
hi,
how can i implement a dll for connecting the browser through proxy server in vc++
|
|
|
|
|
This question is not very clear. Why do you think you need a DLL to achieve this, and exactly what problem are you trying to solve? Any half decent browser will be able to handle communication through a proxy transparently.
|
|
|
|
|
Hi all. How can I know for sure if the user have pressed TAB or SHIFT + TAB in a MDI application ? I read something vague on internet, nothing clear. Thank you.
|
|
|
|
|
Can GetKeyState[^] or GetAsyncKeyState[^] help?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
I solved with GetAsyncKeyState Function.Thank you.
|
|
|
|
|
Yourwelcome.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
I use gsoap to create a proxy class to call my web service's interfaces, but now the methods return error 4 and 12.
I debug these errors and google that error for solution, but I cannot find. Can anyone tell me why the methods return these error?
modified 2-Apr-12 12:44pm.
|
|
|
|
|
Which methods return the error codes? Please show an extract of your code and the values of your input parameters for the instances that fail.
|
|
|
|
|
A method defined in the web service that will return a structure including an array memebers.
|
|
|
|
|
yu-jian wrote: A method defined in the web service that will return a structure including an array memebers.
What exactly does that tell us?
|
|
|
|