Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Вопрос по созданию класса   Найти похожие ветки 

 
leonidus   (2004-09-21 09:19) [0]

Мастера не сочтите ламером, просто раньше как-то явно с ООП не сталкивался а теперь заставили, и сразу грабли.
В консольном приложении, надо создать класс TAutomobile с некими полями и методами, а также конструктором который должен принимать данные их командной строки, я делаю так:
type
TAutomobile=class(TObject)
 //описываем поля
 TekV:word;
 Napr_Grad:word;
 Name:string;
 ID:word;
 Nomer:word

 //описывем методы
 constructor Create;
 procedure ChangeSpeed(delta:word);
 procedure Stop;
end;

на строке constructor Create; компилятор выдает "Unsatisfied forward or external declaration: TAutomobile.Create" чего ему нужно?


 
Ozone ©   (2004-09-21 09:24) [1]

LOL :)))

Дык кто за тебя будет писать:

constructor TAutomobile.Create;
begin
    {....}
end;


 
ЮЮ ©   (2004-09-21 09:25) [2]

а в секции implementation есть строки:

constructor TAutomobile.Create;
begin

end;


 
ЮЮ ©   (2004-09-21 09:27) [3]

Кстати, написать их за тебя может и Delphi:
Complete class at cursor Shift-Ctrl-C


 
leonidus   (2004-09-21 09:35) [4]

>Ozone спасибо, я думал это потом можно написать:)
и еще один вопросик, что значит "предложить для всех полей модификаторы доступа"? Типа перекрыть их что ли ?


 
Ozone ©   (2004-09-21 09:41) [5]

???
может затисать их в public, private...


 
leonidus   (2004-09-21 09:48) [6]

я тоже удивился формулировке задачи:) ну а тогда как понимать "для всех полей"? Одни и теже поля записать и в public и в private?


 
ЮЮ ©   (2004-09-21 09:53) [7]

поля в private (и их идентификаторы должны начинаться с F), а свойства в public

private
 FName: string;
public
 Name: string read GetName write SetName;

после Shift-Ctrl-C получишь строки кода для GetName и SetName как в interface, так и в implementation


 
leonidus   (2004-09-21 09:55) [8]

>ЮЮ а тогда причем здесь модификаторы доступа? непонял вашу мысль?


 
КаПиБаРа ©   (2004-09-21 09:59) [9]

leonidus   (21.09.04 9:35) [4]
предложить для всех полей модификаторы доступа


Я думаю в переводе на русский создать свойства объекта обращение к которым происходит с помощью методов Get... и Set...

=======================================
Пишите коротко и неясно.
(Наполеон I - составителям Конституции)
=======================================


 
leonidus   (2004-09-21 10:03) [10]

Ок, попробую...


 
leonidus   (2004-09-22 09:27) [11]

написал  
TekV:real read GetTekV write SetTekV;
че-то не догоняю, это значит к полю TekV будут именб доспут на чтение и запись соотв. процедуры GetTekV и SetTekV другого класса что ли или как, и где тогда эти процедуры описывать? По тому что я их вообще не описываю но проект компилися нормально.


 
KSergey ©   (2004-09-22 09:31) [12]

Букварь в зубы!!!
Как завещал великий.


 
Суслик ©   (2004-09-22 09:35) [13]

Автору
-------

Не первый раз вижу тебя спрашивающим на форуме.
Пойми, нельзя спрашивать такие вещи как сейчас. Прошлый вопрос про кодировки из WinApi вполне приемлем, т.к. зная дельфи ты не обязан знать все разделы MSDN. Но данный вопрос, совершенно невозможен - ясно, что ты не читал ни одной книги по обсуждаемому предмету. Так нельзя. Вернее можно, но результат образования будет желать лучшего. Проверь, если не веришь.


 
КаПиБаРа ©   (2004-09-22 09:36) [14]

leonidus   (22.09.04 9:27) [11]
unit Unit2;

interface

type
TMyClass = class
 private
   FPole1: integer;
   FPole2: integer;
   function GetProp2: Integer;
   procedure SetProp2(const Value: Integer);
 public
   property Prop1: Integer read FPole1 write FPole1;
   property Prop2: Integer read GetProp2 write SetProp2;
end;

implementation

{ TMyClass }

function TMyClass.GetProp2: Integer;
begin
 Result := FPole2;
end;

procedure TMyClass.SetProp2(const Value: Integer);
begin
 if Value < 100 then
   FPole2 := Value;
end;

end.

======================================
Эллипс - это круг, вписанный в квадрат
со сторонами три на четыре.
======================================


 
Sandman25 ©   (2004-09-22 09:37) [15]

[14] КаПиБаРа ©   (22.09.04 09:36)

 property Prop2: Integer read FPole2 write SetProp2;



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
14-1095131033
Kair()
2004-09-14 07:03
2004.10.10


3-1094815391
Koala
2004-09-10 15:23
2004.10.10
Помогите разобраться


14-1095931679
Petr V. Abramov
2004-09-23 13:27
2004.10.10
Кафе "Бульварное" снова открылось


1-1096061325
Ivanov
2004-09-25 01:28
2004.10.10
"Свернуть" окно программы


4-1094727071
Erik1
2004-09-09 14:51
2004.10.10
Организация TimeOut для Overlapped чтения из com порта.