First, your welcome.Never a good thing! Programming certainly takes time and patience, if you rush through it (as with many things that require any brain power), it will likely be of poor quality.
Code:
CRectangle * d = new CRectangle[2];
// ...
d -> set_values(5,6);
d[1].set_values(7,8);
Actually, I didnt even notice that the first one used "->" and the second one used "."! However, it seems to make sense. "d" is a pointer, so you must use the "indirect member operator" which is "->", to access any members of that thing. A "member" is something (obviously) belonging to this class, so it can be a field/global variable, function, etc. In this case its a function. The next line is accessing the 1th-element of that pointer (or "array"), so you're dereferencing the pointer to get to that 1th element. Now, this element ("d[1]") is
not a pointer, so you can directly access it using the "dot" operator ("."). You do not use the "indirect" member operator ("->") because you're not indirectly accessing it--you've already dereferenced it so you're directly accessing it now. (Sorry for all the "access"es).
If "d" was declared as "**" instead of "*", then you'd have to indirectly access the members, using "->". Hopefully this all makes sense.
With regards to a tutorial, I dont have any specific one in mind. On this site, I imagine the tutorials are probably decent (though I havent read them). You can start here:
Cprogramming.com - Programming Tutorials: C++ Made Easy and C Made Easy