IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> инкапсуляция в ООП, как действует раздел Protected
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

Репутация: -  0  +


Здравствуйте! Собственно как он действует я знаю,но проблемы всё равно возникли. Есть несколько(5) классов,точнее иерархия классов. И при объявлении в родительском (самом первом) классе раздела Protected программа перестает компилироваться. Каждый класс описан в своём модуле. Не знаю где ошибка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

Репутация: -  0  +


Ошибка возникает в самой програме (а не в модулях) в процедуру Create ,несоответствие праметров



program Ierarh;{Придумайте и разработайте иерархию классов на предмете
"средство передвижения". В иерархии должно быть не менее трех уровней,должны
определяться методы, должны быть использованы все модификаторы доступа,
и т.д. Кроме того, должен быть
написан тестирующий класс (или метод), демонстрирующий все возможности
иерархии}



{$APPTYPE CONSOLE}

uses
SysUtils,
vehicleunit in 'vehicleunit.pas',
carunit in 'carunit.pas',
sportunit in 'sportunit.pas',
familyunit in 'familyunit.pas',
BMW in 'BMW.pas';




//объявляем переменные
var vehicle:Tvehicle;
car:Tcar;
sportcar:TSportCar;
familycar:TFamilyCar;
sportcarBMW:TSportCarBMW;
Speed,PassCount,EngineCount:byte;
Transmission,Mark,Color:string;


begin
//работа с объектом Средство пережвижения
writeln('FOR VEHICLE:');
vehicle:=Tvehicle.Create(Speed,PassCount);
vehicle.TakePassanger;
vehicle.MoveFaster;
vehicle.MoveSlower;
vehicle.destroy;

//работа с объектом Машина
writeln('FOR CAR:');
car:=TCar.Create(Speed,PassCount,Color,Mark);
car.TakeColor;
car.TakeMark;
car.MoveFaster; //переопредёлёные методы
car.MoveSlower;
car.TakePassanger;
car.Destroy;


//работа с объектом СемейнМашина
writeln('FOR FAMILYCAR:');
FamilyCar:=TFamilyCar.Create(Speed,PassCount,Color,Mark);
FamilyCar.TakeColor;
FamilyCar.TakeMark;
FamilyCar.MoveFaster; //родительские методы
FamilyCar.MoveSlower;
FamilyCar.TakePassanger;
FamilyCar.Destroy;


//работа с объектом СпортМашина
writeln('FOR SPORTCAR:');
SportCar:=TSportCar.Create(Speed,PassCount,Color,Mark);
SportCar.TakeColor;
SportCar.TakeMark;
SportCar.TakePassanger; //переопределяем второй раз
SportCar.MoveFaster;
SportCar.MoveSlower;
SportCar.Destroy;

//работа с объектом СпортМашинаBMW
writeln('FOR SPORTCARBMW:');
sportcarBMW:= TSportCarBMW.Create(Speed,PassCount,Color,Mark);
sportcarBMW.TakeCost;
sportcarBMW.Destroy;

readln;
end.












Прикрепленные файлы
Прикрепленный файл  vehicleunit.pas ( 1.13 килобайт ) Кол-во скачиваний: 272
Прикрепленный файл  carunit.pas ( 1.62 килобайт ) Кол-во скачиваний: 284
Прикрепленный файл  familyunit.pas ( 670 байт ) Кол-во скачиваний: 266
Прикрепленный файл  sportunit.pas ( 469 байт ) Кол-во скачиваний: 276
Прикрепленный файл  BMW.pas ( 623 байт ) Кол-во скачиваний: 253
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 20:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name