Suppose I have 2 header files, 1 .ipp extension file and a main.cpp file:
First header file myClass1.h (like interface in Java):
template<class T>
class myClass1{
public:
virtual int size() = 0;
};
second header file myClass2.h:
#include "myClass1.h"
template<class T>
class myClass2 : public myClass1<T>{
public:
virtual int size();
private:
int numItems;
};
#include "myClass2.ipp"
And then is my myClass2.ipp file:
template <class T>
int myClass2<T>::size()
{
return numItems;
}
Last one is my main.cpp:
#include "myclass2.h"
void tester()
{
myClass2<int> ForTesting;
if(ForTesting.size() == 0)
{
//......
}
else
{
//.....
}
}
int main(){
tester();
return 0;
}
myClass1, myClass2 and myClass2.ipp belong to header file. main.cpp in source file. What's the advantages by using this way to implement your program instead of using just .h and .cpp files? And what is .ipp extension file? The difference between .ipp and .cpp?