Skip to content

Instantly share code, notes, and snippets.

@rchatsiri
Created October 16, 2010 03:03
Show Gist options
  • Save rchatsiri/629353 to your computer and use it in GitHub Desktop.
Save rchatsiri/629353 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <boost/utility.hpp>
#include <iterator>
template<typename T,int MAX_VALUE>
class ArrayList{
private:
T *valueA;
public:
ArrayList(){
valueA = new T[MAX_VALUE];
}
~ArrayList(){
delete[ ] valueA;
}
//... other declaration
};
template<typename T>
class ContainerObject : private boost::noncopyable{
private:
std::vector<T*> elements;
public:
void sizeOfElement(){
std::cout<<"elements size : "<<elements.size()<<std::endl;
}
T* getObject(){
if( !elements.empty() )
return elements.back();
}
void addObject(){
elements.push_back(new ArrayList<int,5>());
}
~ ContainerObject(){
typename std::vector<T* >::iterator iter = elements.begin();
for( iter = elements.begin(); iter != elements.end(); ++iter){
if( *iter != 0 ){
std::cout<<"Deleted address : "<<*iter<<std::endl;
delete *iter;
}else{
std::cout<<"No deleted address : "<<std::endl;
}
}
}
};
int main()
{
ContainerObject<ArrayList<int,5> > insertObject;
insertObject.addObject();
insertObject.sizeOfElement();
std::cout<<"Object Address : "<<insertObject.getObject()<<std::endl;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment