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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 16:00   #1
RokDemon
Пользователь
 
Регистрация: 03.05.2009
Сообщений: 11
По умолчанию Помогите разобраться с операцией ->(стрелка)

Надо модернизировать уже написанную программу в среде билдер 6.
написана она на основе ООП. и там есть подобные строки(привожу метод):
Код:
inline void AssembleTotal::SetM(double _Hm)
{
    double ParticleM;
    int N = Particles.GetN();
    int NRev = 0;           //количество частиц, величина M изменилась больше чем epsilon
    int Iter = 0;       //число итераций во время поиска равновесного состояния
//    if ( fabs(Hm_hist) > _Hm ) SetHm(Hm_hist);
    do
    {
        Iter++;
        NRev = 0;
        M = 0;
        for (int i = 0; i < N; i++)
        {
            ParticleM = Particles.Particles[i]->M;
            Particles.Particles[i]->SetM(_Hm+FieldInter(_Hm,i));
            M = M + Particles.Particles[i]->M;
            if (fabs((Particles.Particles[i]->M)-(ParticleM))>epsilon )
             NRev++;
        }
    }while ( (NRev != 0) && (Iter != MaxIter));
    Hm_hist = _Hm;
//если вычислять после каждой итерации поле скачка ,необходимо следующее


     if ( N == 0 )     M = 0;
    else              M = M/N;
}
я не могу понять что делает операция стрелка? т.е. ->. при помощи точки мы получаем доступ к методам класса , это понятно, но как быть со стрелкой? программа ,в которую входит этот метод ,состоит из нескольких файлов, мне нужно разобраться как считается намагниченность(строка ParticleM = Particles.Particles[i]->M). где, в каком месте можно это найти? как думаете?помогите пожалуйста....

Последний раз редактировалось MaTBeu; 03.05.2009 в 19:02.
RokDemon вне форума
Старый 03.05.2009, 16:54   #2
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Если объект класса есть указатель, на некий объект этого класса то тогда используется -> для указания на элемент объекта.
например:

Код:
class foo
{
 char cool;
};

main()
{
 foo *a = new foo;
 foo b;
  a->cool = '0';
 b.cool;
}
Если брать твой код то:

Код:
Particles.Particles[i]->M;
Здесь масив Particles[] является массивом объектов некоторого класса. в которых присутствует переменная M типа double, а массив есть указатель.
Goblin вне форума
Старый 03.05.2009, 17:06   #3
RokDemon
Пользователь
 
Регистрация: 03.05.2009
Сообщений: 11
По умолчанию

Спасибо огромное!!!
Теперь я знаю куда копать
Блин, до указателей еще не добрался..Чтож, буду изучать!
RokDemon вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощье ReadKey определить что нажата клавиша "Стрелка" Викдон Паскаль, Turbo Pascal, PascalABC.NET 5 05.02.2009 00:47
Помогите разобраться. littlecoder Общие вопросы Delphi 5 21.12.2008 20:30
Стрелка у ярлыка Altera Windows 3 29.10.2008 14:45
Стрелка мыши Gladiator Общие вопросы Delphi 3 21.05.2008 20:56
помогите разобраться!) Юliana Помощь студентам 1 30.01.2008 01:16