• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Дин. объект, его понятие

  • Автор темы prikolist
  • Дата начала
P

prikolist

Если написать такую строку:
Код:
Box * d = new Box;

Как узнать на какой объект ссылается указатель д если у динамического объекта нету имени, согласно книжному токованию?
 
P

prikolist

Кто-нибудь ответьте на вопрос в первом посте, как вы понимаете.
Код:
Box *d = new Box; 
d->f(); //Это вызов функции объекта класса через указатель.
Где здесь объект класса?
 
M

Mice

prikolist
Объект - это кусочек памяти, на который ссылается d. К нему нельзя обратиться НЕ через указатель. Потому что у него нет имени. Хочешь обращаться напрямую - не используй такой синтаксис, если это возможно.
 
M

Mice

sax_ol
Думаю, о том же что и я. Но раз человек не понял, для чего ему нужно typeid, видимо, просто не понял того, что в книжке говорили.
 
K

kripton

C++:
//сначала создаешь указатель того типа который нужен, например int

int *a;
...
//потом выделяешь ему память 

a = new int;

//в конце программы обязательно
...
delete a;
...
//////////////////////////////////
//одномерный массив типа double, например
int n=10;
double *array;
...
array = new double [n];

...

delete [] array;
....
//////////////////////////////////
//матрица типа float

int n=3,m=4,i=0;
float **matrix;
...
matrix = new float *[n];
for(i=0;i<m;i++) matrix[i] = new float [m];

...

for(i=0;i<m;i++) delete [] matrix[i];
delete [] matrix;
....


и т.д. и т.п., думаю понятно объяснил)))
 
D

DarkKnight

Если написать такую строку:
Box * d = new Box;

Как узнать на какой объект ссылается указатель д если у динамического объекта нету имени, согласно книжному токованию?

Что то вопрос какой то странный.....

указатель у тебя ссылается на только что созданный тобой объект (на который ты память выделил) класса, либо типа Box...
Выделил память создал новый объект.
 
K

kripton

Что то вопрос какой то странный.....

указатель у тебя ссылается на только что созданный тобой объект (на который ты память выделил) класса, либо типа Box...
Выделил память создал новый объект.

создайте свою структуру Box, объявите его и создайте указатель типа Box

struct Box
{
...
параметры структуры
...
}

int main()
{
...
struct Box *a;
...
d = new Box [];
...
delete [] d;
...
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!