Помощь - Поиск - Пользователи - Календарь
Полная версия: И еще одна строка...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Postal_Dude
пожалуста помогите ато у меня большие проблемы...
Описать базовый класс Строка.
Обязятельные поля класса:
1)указатель на строку - хранит адрес динамически выделенной памяти для размещения символов строки;
2)значение типа byte - хранит длину строки в байтах
Обязательные методы:
1)конструктор без параметров
2)конструктор, принимающий в качестве параметра строку(заканчивается нулевым байтом);
3)конструктор, принимающий в качестве параметра символ;
4)получение длины строки;
5)очистка строки(сделать строку пустой);
bigglewood
подскажите как сделать Поле класса - указатель на строку (хранит адрес динамически выделенной памяти для размещения символов строки)?
klem4
type
TSP = ^string;

...
pStr : TSP;


?
volvo
Type
PStr = ^String;

MyString = Object
ps: PStr;

Constructor Init;
End;

Constructor MyString.Init;
Begin
ps := New(PStr);
End;
bigglewood
когда я по томуже принципу добавляю еще одно поле только типа byte то оно не компилируется.
Код


Type
  PStr = ^String;
  bt = byte;
  MyString = Object
    ps: PStr;
     lenbt:bt;
    Constructor Init;
  End;

Constructor MyString.Init;
Begin
  ps := New(PStr);
  lenbt:=New(bt);
End;

или нужно создавать отдельный конструктор?
volvo
А с каких пор Byte стал ссылочным типом?

Type
PStr = ^String;
bt = ^byte;
MyString = Object
ps: PStr;
lenbt: bt;

Constructor Init;
End;

Constructor MyString.Init;
Begin
ps := New(PStr);
lenbt := New(bt);
End;


Объединено из темы "Поле"
volvo
bigglewood, давай не будем темы дублировать?

Ты хотя бы что-то про конструкторы читал??? Что за проблемы вообще?
Constructor MyString(Ch: Char);
Begin
{
Делать реализацию будешь сам, ибо не объяснил,
ЧТО ИМЕННО должно здесь происходить !
}
End;
bigglewood
сори я думал просто что надо по отдельности вопросы задавать...
в том то и дело что реализации у консруктора никакой нет.
осталось только 2 метода сделать..получение длины строки и ее очистка.
еще раз извините.
volvo
Цитата
осталось только 2 метода сделать..получение длины строки и ее очистка.


Function MyString.GetLen: Byte;
Begin
GetLen := lenbt^;
End;

Procedure MyString.Clear;
Begin
ps^ := '';
lenbt^ := 0;
End;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.