Please explain some concepts about Pointer & Class & Array Pointer

Discussion in 'C++' started by chaienbungbu, Jan 22, 2010.

  1. chaienbungbu

    chaienbungbu New Member

    Joined:
    Jan 22, 2010
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    I read this code section from a tutorial, but I cannot understand it thoroughly. It is about Pointer & Class Pointer & Array Pointer.

    This is it:
    Code:
    // pointer to classes example
    #include <iostream>
    using namespace std;
    
    class CRectangle {
    	private:
    		int width, height;
    	public:
    		// prototype
    		void set_values (int,int);
    		// method
    		int area (void) {
    			return (width * height);
    		}
    };
    
    // definion
    void CRectangle :: set_values (int a, int b) {
    	width = a;
    	height = b;
    }
    
    void main () {
    	CRectangle a, *b, *c;
    	[b]CRectangle * d = new CRectangle[2];[/b]
    	//
    	b = new CRectangle;
    	c = &a;
    	a.set_values(1,2);
    	b -> set_values(3,4);
    	[b]d -> set_values(5,6);
    	d[1].set_values(7,8);[/b]
    	//
    	cout << "a area: " << a.area() << endl;
    	cout << "*b area: " << b -> area() << endl;
    	cout << "*c area: " << c -> area() << endl;
    	[b]cout << "d[0] area: " << d[0].area() << endl;
    	cout << "d[1] area: " << d[1].area() << endl;[/b]
    	//
    	delete[] d;
    	delete b;	
    }
    
    I try to search google and understand some parts of this code. But when it contains many concepts (i.e. pointer, array, class) in the BOLD section, I cannot grasp the points. Many operators (*, ->, etc. ), and I failed to distinguish between them.

    Please explain it for me, especially the section in BOLD.

    BTW, I see the "new" operator is very different from java one, is it right?

    Thanks for any help.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice