C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

What's the difference between component & a class?

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++)
View previous topic :: View next topic  
Author Message
orangepic333
Guest





PostPosted: Fri Dec 17, 2004 7:36 am    Post subject: What's the difference between component & a class? Reply with quote



Could someone tell me what's the difference between the two?


Is it that a class is used within an OO language while a component can
be exported between OO languages?


Are there other differences?


Thank you for your help.

Back to top
Phlip
Guest





PostPosted: Fri Dec 17, 2004 2:25 pm    Post subject: Re: What's the difference between component & a class? Reply with quote



orangepic333 wrote:

Quote:
Could someone tell me what's the difference between the two?


Is it that a class is used within an OO language while a component can
be exported between OO languages?

Yes. A class has a public interface, and a component has a published
interface.

Quote:
Are there other differences?

Only in context.

--
Phlip
http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces



Back to top
Howard
Guest





PostPosted: Fri Dec 17, 2004 7:00 pm    Post subject: Re: What's the difference between component & a class? Reply with quote




"orangepic333" <orangepic333 (AT) orangepic333 (DOT) com> wrote

Quote:
Could someone tell me what's the difference between the two?


Is it that a class is used within an OO language while a component can
be exported between OO languages?


Are there other differences?


Thank you for your help.


C++ does not define "component", as far as I know.

In the MAC world, a component is actually a folder (directory) containing
sub-folders and specific types of files that represent an application the
user can run. The actual application is stored somewhere in the folder
tree. The operating system's Component Manager handles locating and loading
such applications (as requested through Finder actions by the user or via
other processes).

In the Windows COM world, a component is a loadable object, with a specific
interface derived from the standard IUnknown interface specification, which
is constructed such that external processes can query the object (via the
Windows registry), and make use of its published properties and functions
through an instance of a class that implements the derived interface.

Or, the term component may simply mean a part of a larger system, such as
the user-interface component or the audio processing component or the user
log component.

A class, on the other hand, is very specifically defined in C++ terms,
(although I don't have the formal specificaion for the term handy). Read
your C++ book for more info on classes.

-Howard





Back to top
Casper B
Guest





PostPosted: Fri Dec 17, 2004 9:28 pm    Post subject: Re: What's the difference between component & a class? Reply with quote

orangepic333 wrote:
Quote:
Could someone tell me what's the difference between the two?

A component is generally bigger and more abstract than a class. While a
class is a relatively low-level blueprint for an object instance, a
component might be a set of classes which together forms an encapsulated
module you then interface with. A component might even contain no
classes at all!

Components are usually proven domain solvers, also known as packages,
toolset etc. depending on language. If a component has proven itself it
can significantly simplyfy the architecture (reduce complexity) as it is
viewed as a black-box, focusing only on the interfaces.

Quote:
Is it that a class is used within an OO language while a component can
be exported between OO languages?

Yes that's not far off, since you might have your component in a .dll
file which you link to externally. Strictly speaking a class can also be
exported, .NET adds a lot of functionality for cross language mixing.

A component might be compiled into the source tree (static component) or
linked at runtime (dynamic component). COM/COM+/ActiveX, EJB, CORBA are
all frameworks for Component Based Software Engineering (CBSE). In
general a component is much more tolerent than a class when it comes to
language independance, platform independance and configurability - and
usually you do not touch the code of a component at all, if you do, the
component has a bad design.

/Casper

Back to top
Malcolm
Guest





PostPosted: Sun Dec 19, 2004 9:52 pm    Post subject: Re: What's the difference between component & a class? Reply with quote


"orangepic333" <orangepic333 (AT) orangepic333 (DOT) com> wrote
Quote:
Could someone tell me what's the difference between the two?

Is it that a class is used within an OO language while a component can
be exported between OO languages?

Are there other differences?

You are sort of right.


"class" is a keyword in both C++ and Java. In both languages, a class
consists of data members grouped together, and functions or methods that act
on them. Usually the data members are made "private", so only the class
methods have direct access to them.
Where C++ and Java differ is the way in which classes can enter into
relationships with each other. Both allow inheritance, though Java calls it
extension. C++ allows multiple inheritance, whilst Java allows classes to
implement interfaces.

Now "component" doesn't have a defined meaning in either language. So you
need to know what context the person is using the term in. He may mean
simply a library, or a visual window on a GUI. In Java, he probaly means a
Java "bean", which is a special sort of Java class that can serialise
itself, and can be instantiated without source code. In a Microsoft context,
he probably means COM, the Microsoft component interface. This is basically
a C++ interface but is formally language-independent. Essentially
applications use a third party library by querying for supported
"interfaces". Direct X is built round COM, so that different graphics
hardware devices can be accessed by the same game without the need to
compile for all platforms.




Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.