#include <iostream>

struct CButton
{
	int x, y, z;
	CButton() : x(0), y(0), z(0)
	{
		std::cout << "Default Constructor" << std::endl;
	}
	CButton(const CButton &from) : x(from.x), y(from.y), z(from.z)
	{
		std::cout << "Copy Constructor" << std::endl;
	}
	CButton(int x, int y, int z) : x(x), y(y), z(z)
	{
		std::cout << "x, y, z Constructor" << std::endl;
	}
	~CButton()
	{
		std::cout << "Destructor" << std::endl;
	}
};

int main()
{
	CButton *pBtn = (CButton*)operator new(sizeof(CButton)*4);
	for(unsigned i = 0; i < 4; ++i)
	{
		new (pBtn+i) CButton(3, 4, 5);
	}
	delete pBtn;
}