hi i am having trouble understanding that what is the difference between having class xxx { } in the .h file and not having it?

say i have these two code, can anyone tell me the difference?

#ifndef sample_h
#define sample_h

class sample {

function1 ();
function2 ();

};

#endif

and

#ifndef sample_h
#define sample_h

function1 ();
function2 ();

#endif

Er, well, one has a class definition with two member functions, and one has two functions.

All things being equal, the difference is that you can directly call the two functions in the second case, but need to create an instance of class 'sample' to call the functions in the first case.

The sample class you've defined here doesn't do much 'extra' that classes can be fantastic for. Like, instance variables or constructors/destructors or superclasses.

The two different implementations can acheive the same results, but they belong to two different familes. One is strucutural and you'll find the C implementations like that (although it does work in C++ as well).

Where as classes are part of C++, which applies Object Oriented approach to solve the problems. In C++, the concept is like, you implement the algorithms in terms of class member functions and these can be accessed through the object (instance) of the class. (for static methods, you don't need the object of the class). This approach gives you good abstraction, encapsulations of data and many other benefits.

There is another pradigm, referred as Generic Programming, where the implementations are done through templates (like STL).

This article has been dead for over six months. Start a new discussion instead.