Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ И еще одна строка...

Автор: Postal_Dude 16.05.2006 20:19

пожалуста помогите ато у меня большие проблемы...
Описать базовый класс Строка.
Обязятельные поля класса:
1)указатель на строку - хранит адрес динамически выделенной памяти для размещения символов строки;
2)значение типа byte - хранит длину строки в байтах
Обязательные методы:
1)конструктор без параметров
2)конструктор, принимающий в качестве параметра строку(заканчивается нулевым байтом);
3)конструктор, принимающий в качестве параметра символ;
4)получение длины строки;
5)очистка строки(сделать строку пустой);

Автор: bigglewood 23.05.2006 21:40

подскажите как сделать Поле класса - указатель на строку (хранит адрес динамически выделенной памяти для размещения символов строки)?

Автор: klem4 23.05.2006 21:45

type
TSP = ^string;

...
pStr : TSP;


?

Автор: volvo 23.05.2006 21:45

Type
PStr = ^String;

MyString = Object
ps: PStr;

Constructor Init;
End;

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

Автор: bigglewood 23.05.2006 22:07

когда я по томуже принципу добавляю еще одно поле только типа 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 23.05.2006 22:16

А с каких пор 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 23.05.2006 22:43

bigglewood, давай не будем темы дублировать?

Ты хотя бы что-то про конструкторы читал??? Что за проблемы вообще?

Constructor MyString(Ch: Char);
Begin
{
Делать реализацию будешь сам, ибо не объяснил,
ЧТО ИМЕННО должно здесь происходить !
}
End;

Автор: bigglewood 23.05.2006 22:46

сори я думал просто что надо по отдельности вопросы задавать...
в том то и дело что реализации у консруктора никакой нет.
осталось только 2 метода сделать..получение длины строки и ее очистка.
еще раз извините.

Автор: volvo 24.05.2006 0:39

Цитата
осталось только 2 метода сделать..получение длины строки и ее очистка.


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

Procedure MyString.Clear;
Begin
ps^ := '';
lenbt^ := 0;
End;