С++ указатели на объекты

Указатель на объект объявляется также как и на значения других типов.

Пример:

 

#include <iostream>
using namespace std;
void disp_binary (unsigned u);
class test {
    int num;
public:
    void setVar(int i){ num = i;}
    int getVar ();
};
int test::getVar(){ return num; }
int main (){
    test obj1, *p; // Объявляем новый объект и создаем на него указатель
    obj1.setVar(10);
    cout << obj1.getVar();
    p = &obj1; // Присваиваем указателю прямой доступ к объекту obj1
    cout << p->getVar(); получаем доступ к объекту с помощью указателя
    return 0;
}

 

test obj1, *p; - здесь мы создаем указатель объекта НА ТИП класса test

а с помощью p = &obj1; мы присваеваем указателю точный адрес объекта obj1

 

Указатели объектов можно также инкремировать или декремировать.

Например в массиве объектов можно перемещается с помощью указателя:

 

#include <iostream>
using namespace std;
class test {
    int num;
public:
    void setVar(int i){ num = i;}
    int getVar ();{ return num; }
};
int main (){
    test obj[2], *p; // объявляем массив объектор из двух членов и ставим указатель на этот тип класса
    obj[0].setVar(11);
    obj[1].setVar(12);
    cout << obj[0].getVar();
    p = &obj[0]; // помещаем в указатель адрес объекта &obj[0]
    cout << p->getVar(); // с помощью стрелки вызываем функцию
    p++; // перемещаемся по массиву объектов
    cout << p->getVar();
    p--;
    cout << p->getVar();
    return 0;
}



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы