С++ указатели на объекты
Компьютеры / Программирование / C++ (язык С)
Тэги: язык С основы язык С указатели язык С классы
Тэги: язык С основы язык С указатели язык С классы
📅27-10-2018 👁421
Указатель на объект объявляется также как и на значения других типов.
Пример:
#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;
}
Оставить свой ответ: