Форум программистов, компьютерный форум CyberForum.ru

Указатели на массив объектов - C++

Восстановить пароль Регистрация
 
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
27.11.2008, 14:40     Указатели на массив объектов #1
здравствуйте!

есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
class samp
{
      int a;
public: samp(int n) { a=n;}
        int get_a() { return a;}
};
 
 
 
int main(int argc, char *argv[])
{
    samp obj [4][2] = {
         1, 2,
         3, 4,
         5, 6,
         7, 8
         };
         int i;
         
    samp *p;
    p = (samp*) obj;
    
    for(i=0;i<4;i++)
    {
       cout << p->get_a() << " ";
       p++;
       cout << p->get_a() << "\n";
       p++;
       }
       
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
вопрос такой: почему вот в этой
C++
1
p = (samp*) obj;
строке необходим (samp*) перед obj? почему нельзя просто p=obj?

спасибо!

з.ы. если будете отсылать к лит-ре про указатели, отсылайте плз к той, где конкретно объясняется именно про указатели на массивы объектов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2008, 14:40     Указатели на массив объектов
Посмотрите здесь:

C++ массив через указатели
C++ массив и указатели
Запись, чтение объектов в файл через указатели. C++
C++ Массив и указатели
C++ Указатели и адреса объектов
C++ Задача на массив и указатели.(массив из случайных чисел)
C++ Создание 2D массива из объектов, используя указатели
C++ Массив и указатели. Вывести на экран весь массив и на отдельной строке - значение минимального элемента массива
C++ Динамический массив и указатели!?
Массив и указатели C++
C++ Указатели и массив
C++ Сортировка объектов через указатели, основанная на алфавитном порядке имен

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spo1ler
 Аватар для Spo1ler
291 / 51 / 3
Регистрация: 22.05.2008
Сообщений: 788
27.11.2008, 15:29     Указатели на массив объектов #2
Кто тебе сказал, что обязательно? p у тя просто будет ссылатся на первый элемент. В чем проблема?
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
27.11.2008, 15:41  [ТС]     Указатели на массив объектов #3
в том-то и дело, что не будет.
при присвоении p = obj пишет ошибку cannot convert `samp[4][2]' to `samp*' in assignment.
(компилятор dev c++)
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.11.2008, 15:43     Указатели на массив объектов #4
Здесь обязательно показать, что это указатель. Но можно и другим способом. Например:
Код
p = &obj[0][0];
здесь я беру адрес первого объекта.
еслия напишу так:
Код
p = obj;
То должна возникнуть ошибка приведения типа
samp [4][2] к указателю samp*. Что правильно.

tube, читай про указатели.

Добавлено через 2 минуты 39 секунд
Как я четко про приведение сказал видишь, компилятор со мной согласен
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
27.11.2008, 15:45  [ТС]     Указатели на массив объектов #5
да, в точку спасибо за ответ!
Yandex
Объявления
27.11.2008, 15:45     Указатели на массив объектов
Ответ Создать тему
Опции темы

Текущее время: 23:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru