Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1095758581
Goga
2004-09-21 13:23
2004.10.10
Управление TADODataSet из TThread


3-1095154874
12345
2004-09-14 13:41
2004.10.10
Можно ли менять содержимое таблицы, если менятьг грид ADOQuery?


8-1090041633
ИМХО
2004-07-17 09:20
2004.10.10
Список аудиокодеков


14-1095554579
Думкин
2004-09-19 04:42
2004.10.10
С днем рождения! 19 сентября


14-1095785261
Ломброзо
2004-09-21 20:47
2004.10.10
Вакансия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский