Normally you can access data members and functions by using the dot (.) operator for Cat objects created locally. To access the Cat object on the free store, you must dereference the pointer and call the dot operator on the object pointed to by the pointer. Therefore, to access the GetAge member function, you would write
(*pRags).GetAge();
Parentheses are used to assure that pRags is dereferenced before GetAge() is accessed.
Parentheses are used to assure that pRags is dereferenced before GetAge() is accessed.
ons
Because this is cumbersome, C++ provides a shorthand operator for indirect access: the points-tooperator (->), which is created by typing the dash (-) immediately followed by the greater-than symbol (>). C++ treats this as a single symbol. Listing 8.6 demonstrates accessing member variables and functions of objects created on the free store.
Accessing member data of objects on the free store.
Accessing member data of objects on the free store.
1: // 2: // Accessing data members of objects on the heap 3: 4: #include <iostream.h> 5: 6: class SimpleCat 7: { 8: public: 9: SimpleCat() {itsAge = 2; } 10: ~SimpleCat() {} 11: int GetAge() const { return itsAge; } 12: void SetAge(int age) { itsAge = age; } 13: private: 14: int itsAge; 15: }; 16: 17: int main() 18: { 19: SimpleCat * Frisky = new SimpleCat; 20: cout << "Frisky is " << Frisky->GetAge() << " years old\n"; 21: Frisky->SetAge(5); 22: cout << "Frisky is " << Frisky->GetAge() << " years old\n"; 23: delete Frisky; 24: return 0;
25: }
Output:
Frisky is 2 years old
Frisky is 5 years old
Analysis: In line 19, a SimpleCat object is instantiated on the free store. The default constructor sets its age to 2, and the GetAge() method is called in line 20. Because this is a pointe
r, the indirection operator (->) is used to access the member data and functions. In line 21, the SetAge() method is called, and GetAge() is accessed again in line 22.
Analysis: In line 19, a SimpleCat object is instantiated on the free store. The default constructor sets its age to 2, and the GetAge() method is called in line 20. Because this is a pointe
r, the indirection operator (->) is used to access the member data and functions. In line 21, the SetAge() method is called, and GetAge() is accessed again in line 22.
Hi,
ReplyDeleteBlog favorite tutorial and websites of the internet on your browser. My site is learning many tutorial & online earning. so my site share you friends If you want to earn money to sit on your home, you can follow my site http://freelancetube.blogspot.com/
I have listed there a lot of Photoshop and Illustrator tutorials, Earning Tutorials, etc. There will not any hamper for you to visit my site rather you will be benefited.
Saiful
http://freelancetube.blogspot.com/