IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> fp, поле-константа
сообщение
Сообщение #1


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Добрый день!
Мне надо сделать поле-константу у объекта... Но как это делается?пытался так:
private const m :byte =5; static;
но... ошибка:( помогите, пожалуйста...
заранее благодарен...

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Мне надо сделать поле-константу у объекта
А зачем? Недостаточно просто определить поле M, и в конструкторе ему присваивать какое-то значение?

Смысл этой константы в чем?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 12.01.2008 20:25) *

А зачем? Недостаточно просто определить поле M, и в конструкторе ему присваивать какое-то значение?
так и сделаю, спасибо...
Цитата(volvo @ 12.01.2008 20:25) *
Смысл этой константы в чем?
размер поля массива...

update
только при таком подходе необходимо создавать матрицу динамически или не обязательно?

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Скорее всего, другого выхода не будет - для задания размерности статической переменной в любом случае нужна константа (и не типизированная, как ты показал в первом посте, а простая), так что без SetLength не обойтись...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 12.01.2008 20:58) *
Скорее всего, другого выхода не будет - для задания размерности статической переменной в любом случае нужна константа (и не типизированная, как ты показал в первом посте, а простая), так что без SetLength не обойтись...
спасибо, будем писать... ух уж это ООП:)


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


если поле класса - одномерный динамический массив, то хранить его размер вообще не нужно, всегда можно заюзать length.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(klem4 @ 13.01.2008 17:34) *
всегда можно заюзать length.
я подумал, с инициализирующей переменной будет даже лучше, ибо тогда размер карты можна будет легко изменить в опциях..


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Хоть и старая тема, но можно было сделать property. Например так:

type
MyObj = object // Это тестовый объект
private
Arr: array of integer; // Это наш массив
function GetArrLen: byte;
procedure SetArrLen(Len: byte);
public
property ArrLen: byte read GetArrLen write SetArrLen; // Это свойство (property)
end;

// При чтении свойства ArrLen будет вызываться эта функция
function MyObj.GetArrLen: byte;
begin
GetArrLen := Length(Arr);
end;

// При записи значения в свойство ArrLen будет вызываться эта процедура
procedure MyObj.SetArrLen(Len: byte);
begin
SetLength(Arr, Len);
end;

// Пример использования:
var
M1: MyObj;
begin
M1.ArrLen := 10; // Задали размер массива Arr равным 10
WriteLn(M1.ArrLen); // Вывели на экран размер массива Arr (10)
end.


Сообщение отредактировано: Archon -


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Archon @ 7.02.2008 11:11) *

Хоть и старая тема, но можно было сделать property.
Спасибо!


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 20:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name