#include <iostream>
#include <vector>

template<class T>
class Obj {
private:
	T a;
public:
	Obj(T a_) : a(a_) {}
	
	const T& getA() const { return a; }
};

int main() {
	std::vector<Obj<int>> objs;
	
	objs.push_back(Obj<int>(5));
	objs.push_back(Obj<int>(10));
	objs.push_back(Obj<int>(15));
	objs.push_back(Obj<int>(20));
	
	for(Obj<int> &obj : objs) {
		std::cout << obj.getA() << "\n";
	}
	
	std::cout << std::flush;
	return 0;
}