Тема: Можно ли передать параметры при инициализации члена класса ?

Неужели бейсик настолько убог, что нельзя ?
Вот пример:
В модуле класса пишем:

Private item() As Double 'массив членов матрицы
Public x_size As Integer, y_size As Integer 'размерность матрицы
Private Sub Class_Initialize(ByVal x As Integer, ByVal y As Integer) '[b]ЗДЕСЬ РУГАЕТСЯ при компиляции[/b]
x_size = x
y_size = y
ReDim item(1 To x, 1 To y)
Dim i As Integer, j As Integer
For i = 1 To x
  For j = 1 To y
    item(i, j) = 0# 'инициализируем матрицу нулями
  Next j
Next i
End Sub

если убрать параметры из определения Class_Initialize, всё отлично компилируется.
Возникает вопрос: на...... вообще нужен этот метод, если ему нельзя передать параметры ???

Re: Можно ли передать параметры при инициализации члена класса ?

Модуль

Option Explicit
Public x_size As Integer, y_size As Integer

Модуль класса

Option Explicit
[b]Option Base 1[/b]
Private item() As Double
Private Sub Class_Initialize()
Dim i As Integer, j As Integer
ReDim item(1 To x_size, 1 To y_size)
For i = LBound(item, 1) To UBound(item, 1)
    For j = LBound(item, 2) To UBound(item, 2)
        item(i, j) = 0#
    Next
Next
End Sub

Re: Можно ли передать параметры при инициализации члена класса ?

> BP
Я тоже так думал, но это слишком уж "через ж...".
Поэтому просто добавил в класс свою public процедуру инициализации, которую надо не забыть вызвать явно для каждого нового члена этого класса. Что ни говори, Бейсик - убожество. Просто очередное подтверждение "медицинского факта", как говаривал О.Бендер:).

Re: Можно ли передать параметры при инициализации члена класса ?

> Maxim T
Вообще-то, по идеологии VB - Class_Initialize и Class_Terminate это не методы, а события класса происходящие в ответ на создание или уничтожение объекта класса, и при чем здесь убожество или не убожество языка? Выбирай инструмент по руке и работай с ним!
   Вы создали свой "конструктор класса" (по аналогии с классами C++), ваш оппонент BP - свой, и что из этого следует? В вашем случае лишний вызов прцедуры, так?
Но что-то мешает вам перейти на С++, где такой вызов выглядит компактнее, в этом скорее всего корень проблемы. Язык ни в чем не виноват.

Re: Можно ли передать параметры при инициализации члена класса ?

> Leonid
Да, вы правы, я напрасно "облаял" бейсик, а на С++ никак не перейду, потому что нет достаточно сложной задачи, а выдумывать таковую самому - пустое дело, я не раз убеждался. Кстати, в С++ есть вещи, которые я безуспешно пытался сделать на Лиспе.

Re: Можно ли передать параметры при инициализации члена класса ?

> Maxim T
Всегда существует "достаточно сложная задача", например, как зарабатывать на жизнь так чтобы не было тошно от этой самой жизни... Полагаю, что не отклонился от темы обсуждения.