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

Тема в разделе "C и С++ FAQ", создана пользователем prikolist, 4 июн 2010.

  1. prikolist

    prikolist Гость

    Репутация:
    0
    Если написать такую строку:
    Код:
    Box * d = new Box;
    Как узнать на какой объект ссылается указатель д если у динамического объекта нету имени, согласно книжному токованию?
     
  2. prikolist

    prikolist Гость

    Репутация:
    0
    Это как понимать?
     
  3. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.431
    Симпатии:
    40
    Это понимать как запрос для гугла.
     
  4. prikolist

    prikolist Гость

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

    Mice Гость

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

    Mice Гость

    Репутация:
    0
    sax_ol
    Думаю, о том же что и я. Но раз человек не понял, для чего ему нужно typeid, видимо, просто не понял того, что в книжке говорили.
     
  7. kripton

    kripton Гость

    Репутация:
    0
    Код:
    //сначала создаешь указатель того типа который нужен, например 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;
    ....

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

    DarkKnight Well-Known Member

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Что то вопрос какой то странный.....

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

    kripton Гость

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

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

    int main()
    {
    ...
    struct Box *a;
    ...
    d = new Box [];
    ...
    delete [] d;
    ...
    }
     
Загрузка...

Поделиться этой страницей