C++ Tutorial/Pointer/object pointer — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
|
(нет различий)
|
Текущая версия на 13:30, 25 мая 2010
Содержание
- 1 array of pointers to objects
- 2 assign the address of a public member of an object to a pointer and then access that member by using the pointer
- 3 dereferencing the pointer returned by new
- 4 Pointers to Objects
- 5 uses a pointer to access all three elements of array ob after being assigned ob"s starting address
array of pointers to objects
<source lang="cpp">#include <iostream>
using namespace std; class person{ protected: char name[40]; public: void setName(){ cout << "Enter name: "; cin >> name; } void printName() { cout << "\n Name is: " << name; } }; int main() { person* persPtr[100]; int n = 0; char choice; do{ persPtr[n] = new person; persPtr[n]->setName(); n++; cout << "Enter another (y/n)? "; cin >> choice; }while( choice=="y" ); for(int j=0; j<n; j++){ cout << "\nPerson number " << j+1; persPtr[j]->printName(); } cout << endl; return 0; }</source>
assign the address of a public member of an object to a pointer and then access that member by using the pointer
<source lang="cpp">#include <iostream> using namespace std;
class cl { public:
int i; cl(int j) { i=j; }
};
int main() {
cl ob(1); int *p; p = &ob.i; // get address of ob.i cout << *p; // access ob.i via p return 0;
}</source>
dereferencing the pointer returned by new
<source lang="cpp">#include <iostream>
using namespace std; class Distance { private: int feet; float inches; public: void getdist() { cout << "\nEnter feet: "; cin >> feet; cout << "Enter inches: "; cin >> inches; } void showdist(){ cout << feet << "\"-" << inches << "\""; } }; int main(){ Distance& dist = *(new Distance); dist.getdist(); dist.showdist(); cout << endl; return 0; }</source>
Pointers to Objects
<source lang="cpp">#include <iostream> using namespace std;
class cl {
int i;
public:
cl(int j) { i=j; } int get_i() { return i; }
};
int main() {
cl ob(88), *p; p = &ob; // get address of ob cout << p->get_i(); // use -> to call get_i() return 0;
}</source>
uses a pointer to access all three elements of array ob after being assigned ob"s starting address
<source lang="cpp">#include <iostream> using namespace std;
class cl {
int i;
public:
cl() { i=0; } cl(int j) { i=j; } int get_i() { return i; }
};
int main() {
cl ob[3] = {1, 2, 3}; cl *p; int i; p = ob; // get start of array for(i=0; i<3; i++) { cout << p->get_i() << "\n"; p++; // point to next object } return 0;
}</source>