Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 14:40   #51
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

про классы читал много в разной литературе, а если так то эта змейка, это первая программа где я применяю классы, собственно для этого(научиться использовать классы) я и взялся писать змейку..
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 14:42   #52
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

попробовал я написать, как Вы написали, так теперь появилась проблема, у меня как бы питон отбрасывает свой хвост
вот скрин..


вот код..
Код:
void move(Way way)
{
        //head=pit.front();
        tail=pit.back();

        switch(way){
                        case UP:{pit.begin()->Y--; break;}
                        case DOWN:{pit.begin()->Y++; break;}
                        case RIGHT:{pit.begin()->X++; break;}
                        case LEFT:{pit.begin()->X--; break;}

        }//--end switch
        pit.insert(pit.begin(),pit.front());
        pit.erase(pit.end());

        SetConsoleCursorPosition(hStdOut,tail);
        cout<<".";

        for(int i=0;i<ps;i++){
                SetConsoleCursorPosition(hStdOut,pit[i]);
                cout<<"0";
        }

} //-- end move ()
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 14:50   #53
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

а что такое "указатель" знаешь?
_Bers вне форума Ответить с цитированием
Старый 05.01.2012, 14:54   #54
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Код:
int z=10;

int *m=&z;
как то так..
как бы указатель m указывает на ячейку памяти переменной z..
& - взятия адреса, если я правильно понимаю..
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 15:12   #55
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от asmars Посмотреть сообщение
Код:
int z=10;

int *m=&z;
как то так..
как бы указатель m указывает на ячейку памяти переменной z..
& - взятия адреса, если я правильно понимаю..
как ты по указателю сможешь изменить значения ячейки, на которую указатель смотрит?
_Bers вне форума Ответить с цитированием
Старый 05.01.2012, 15:24   #56
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Код:
        int n;
        cin>>n;

        int *g=&n;
        int q=*g+1;

        cout<<q<<endl;
вот так, как я понимаю..
по моему это называется разыменование ..
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 15:40   #57
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от asmars Посмотреть сообщение
Код:
        int n;
        cin>>n;

        int *g=&n;
        int q=*g+1;

        cout<<q<<endl;
вот так, как я понимаю..
по моему это называется разыменование ..

Код:
struct test { a; };

int main()
{

    test temp;    test* ptr = tmp;

    ptr->a=10;
}
Указатель имеет тип. Этот тип интерпритируется компилятором, как тип объекта, на который указывает указатель.

так как ptr имеет тип test*, то компилятор думает, что он смотрит на экземпляр класса test.

А у этого класса есть поле a

Через стрелочку -> мы получаем доступ с данным объекта по указателю.


через точку - тоже самое, но когда речь не об указателе, а об имени объекта.
_Bers вне форума Ответить с цитированием
Старый 05.01.2012, 15:49   #58
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Спасибо, _Bers!
Объяснили прекрасно и доступно!

как я понял когда надо какому нибудь указателю присвоить ссылку на данные класса(объекта), то делать надо через "->"..

а если переменной присвоить значение какой-то переменной из класса(объекта), то делать надо через "." ..

правильно ??
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 16:23   #59
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

никак не могу разобраться с выше описанной проблемой..
почему если использовать COORD head, все ок.
а когда без него, то один элемент массива удаляется ..
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 05.01.2012, 19:38   #60
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

Ну, раз про стрелочки и точки уже всё рассказали, мне остаётся только добавить что итератор, по сути, просто указатель на ячейку вектора.
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
sVasilich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal движение змейки zhenka619 Помощь студентам 0 29.12.2011 22:45
Обработка нажатия клавиш в TButton mLight Помощь студентам 4 11.11.2011 20:53
Обработка клавиш на TListBox Melanholly Общие вопросы Delphi 2 31.10.2011 14:06
Обработка событий клавиш клавиатуры Synapse Visual C++ 2 20.10.2011 18:37
обработка нажатия клавиш VC++ консоль rest Помощь студентам 0 06.10.2009 07:53