int i;
//HeavyCar **masCar;
masCar=new HeavyCar *;
qu1=fopen("que1", "wt");
qu2=fopen("que2", "wt");
for(i=0;i<S;i++)
masCar=new HeavyCar(i+1);
Fuller fu(masCar);
//Emptier em;
for(i=0;i<S;i++)
{
masCar->putFuller(&fu);
masCar->putEmptier(&em);
}
Timer3->Enabled=true;
Доступ к объекту класса
Это код кнопки ПУСК:
Код:
Затем управление передаётся Таймеру:
Код:
for (int i=0; i<S; i++)
masCar->run();
fu.run();
em.run();
masCar->run();
fu.run();
em.run();
В обработчике события OnTimer сначала компилятор выдал ошибки, дескать не знаю что такое masCar, em, fu.
Я вынес объявления объектов masCar и em вверх cpp файла и компилятор на них не ругается.
А вот как сделать что бы объект fu был виден в OnTimer у меня никак не получается т.к. ему передаётся в качестве параметра masCar.
Fuller fu(masCar);
Как же сделать что бы fu был виден в OnTimer?
Очевидно, точно так же. Вынести его наверх. А еще пойти почитать про области видимости.
Код:
Fuller *fu; //вверху модуля cpp объявил указатель на Fuller
При нажатии на кнопку сработает следующий обработчик:
Код:
int i;
//HeavyCar **masCar;
masCar=new HeavyCar *;
qu1=fopen("que1", "wt");
qu2=fopen("que2", "wt");
for(i=0;i<S;i++)
masCar=new HeavyCar(i+1);
//Fuller fu(masCar);
fu = new Fuller(masCar); //здесь выделяем память под объект fu
//сработает конструктор и ему передаём
//в качестве параметра masCar
//Emptier em;
for(i=0;i<S;i++)
{
masCar->putFuller(fu);
masCar->putEmptier(&em);
}
Timer3->Enabled=true;
//HeavyCar **masCar;
masCar=new HeavyCar *;
qu1=fopen("que1", "wt");
qu2=fopen("que2", "wt");
for(i=0;i<S;i++)
masCar=new HeavyCar(i+1);
//Fuller fu(masCar);
fu = new Fuller(masCar); //здесь выделяем память под объект fu
//сработает конструктор и ему передаём
//в качестве параметра masCar
//Emptier em;
for(i=0;i<S;i++)
{
masCar->putFuller(fu);
masCar->putEmptier(&em);
}
Timer3->Enabled=true;
И в таймере сработает
Код:
for (int i=0; i<S; i++)
masCar->run();
fu->run(); //т.е. здесь будет вызываться метод run
//класса Fuller
em.run();
masCar->run();
fu->run(); //т.е. здесь будет вызываться метод run
//класса Fuller
em.run();
Проверьте пожалуйста, вроде так правильно?
Если работает - скорее всего, правильно. :) Сходу ошибок не вижу.