struct A
{
	A(int& a)
		: m_a(a)
	{}

	void print()
	{
		std::cout << m_a << std::endl;
	}

	int& m_a;
};

int main(int argc, char* argv[])
{
	int* b = new int();
	*b = 1234567890;

	A a(*b);
	a.print();

	*b = 43210;
	a.print();

	delete b;
	a.print();

	return 0;
}

prints the following:

1234567890
43210
-572662307