Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизClass u Object Найти похожие ветки
← →
Random (2002-05-29 12:58) [0]В чем разница? Объявляю объект
TTree = object
public
fTop:PTop;
...
Все работает. Заменяю object на class - выдает Access Vialation на строчке
If fTop = nil then ...
Так в чем же разница?
← →
MBo (2002-05-29 13:03) [1]про разницу см. хелп.
а Access Vialation - наверно, не создал экземпляр
← →
Random (2002-05-29 13:24) [2]Я ж говорю, код один и тот же, но при замене обжекта на класс появляется ошибка. Да и вообще откуда может быть ошибка на такой строке? Я ж указателю не присваиваю нечего ...
← →
Alx2 (2002-05-29 13:31) [3]Как создаешь объект?
← →
Random (2002-05-29 13:36) [4]Я ж писал в начале
TTree = object
public
fTop:PTop;
...
Работает, а потом слово object заменяю на слово class и ...
Или ты про другое? Далее никак его не создаю, есть лишь конструктор create который заполняет объект записями из файла.
← →
NailS (2002-05-29 13:54) [5]2 Random
Дык, молодой человек, вы похоже экземпляр класса не создаете ;) и хотите получить доступ к его членам, так у вас не выйдет и Access Violation тому свидетель.
То что у вас прокатывало данное поведение с TObject связано с тем что TObject это (упрощенно говоря) структура (запись) с функциями, насколько я помню.
← →
NailS (2002-05-29 14:14) [6]Сорри, описался малость:
не TObject а object.
← →
Alx2 (2002-05-29 14:44) [7]>Random (29.05.02 13:36)
Я спрашивал как именно создаешь. Как описываешь (у тебя приведена именно часть описания) - пока пофигу :)
← →
Lord Warlock (2002-05-29 14:52) [8]если в программе нет такой строчки:
TreeObj:=TTree.Create; //TreeObj - переменная типа TTree
ничего работать не будет
и еще желательно вызывать TreeObj.Free; по завершении пользования этим объектом.
А вообще-то это основы ООП, надо знать.
← →
Anatoly Podgoretsky (2002-05-29 15:03) [9]Ну даже если ничего и не знаешь, то надо хотя бы приводить более полное описание и пример его использования, с данным объемом тебе можно сказать, только то, что у тебя где то ошибка
← →
Alx2 (2002-05-29 15:28) [10]>TreeObj:=TTree.Create; //TreeObj - переменная типа TTree
По-моему для типов, объявленный с помощью спецификатора "object" это не проходит. Там нет методов класса. Для них ИМХО нужно писать TreeObj.Create(...). И сравнение if TreeObj=Nil не совсем корректно :)
← →
Lord Warlock (2002-05-29 15:36) [11]
> По-моему для типов, объявленный с помощью спецификатора
> "object" это не проходит.
человек хочет класс, я написал для класса
← →
NailS (2002-05-29 15:37) [12]Для object нет Create, Destroy и создаются они при помощи New, Dispose, ну а сравнивать с nil лучше поинтер на object
← →
Alx2 (2002-05-29 15:52) [13]>Для object нет Create, Destroy
Конструктор и деструктор в object можно хоть горшком обозвать :)
А New и Dispose - для ссылок на объекты. У него объект объявлен статикой. Поэтому просто <ObjectName>.<ConstrucorName>(<parameters>)
← →
NailS (2002-05-29 15:59) [14]Since object types do not descend from TObject, they provide no built-in constructors, destructors, or other methods. You can create instances of an object type using the New procedure and destroy them with the Dispose procedure, or you can simply declare variables of an object type, just as you would with records.
Object types are supported for backward compatibility only. Their use is not recommended.
← →
Alx2 (2002-05-30 10:16) [15]Сорри, не пользовался ими со времен BP7.0 :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c