Currently, you are reassigning width and height to point to the address of the arguments a and b.
On lines 12 and 13, you are multiplying the values found in the memory locations previously occupied by a and b during the constructor function call. Obviously those variables no longer exist, so the values in those locations could be anything.
I assume you want to instead not reassign each pointer, but reassign the variable it points to. You need to dereference the pointers, then assign them the values of a and b, not the addresses. However, this will probably cause a crash because your pointers were never initialized to point to anything.
Replace lines 19 and 20 with:
width = new int;
*width = a;
height = new int;
*height=b;
You also forgot to write the prototype for your destructor, though in such a small program, the memory leak created by not deleting the pointers is inconsequential.
On a side note, you don't need to use the entire namespace when just a few items will do:
using std::cin;
using std::cout;
using std::endl;
UPDATE: I don't really understand why people answer a question that's already been adequately answered, but since they did...
Don't listen to Michaell, he obviously has no clue wtf he's doing.
Don't take practical advice from Blue0wns either, as he suggests decomposition as a viable alternative when the goal in programming is always encapsulation.
Just do what I said, and you'll be fine.