Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: Новое сообщение без темы Добавлено: 12.04.04 01:54  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 

Привет, форумляне! Давно не писал - мучаюсь с С++...

Довольно давно мучаюсь с этим вопросом и, как правило, все порывы наконец-то выяснить "что делать?" заканчиваются увиливанием от необходимости делать то, чего не знаю, т.е. изменением алгоритма.

Но проблема остаётся. Вот она:

Имеется класс. Делал сам. В процессе работы я его заполняю данными. Заполнение неслабое, т.к. работаю с DirectX и, сами понимаете, некоторые mesh'и так загружаются, что мало не покажется. Так вот, когда возникает нужда создать массив переменных моего класса, нельзя ли как-нибудь избежать повторной загрузки. Я делал так:

dim Shablon as MyClass ' Объявляю

set Shablon=new MyClass' Создаю

FillShablon Shablon ' Заполняю ByRef

' И вот теперь хочу его просто скопировать

dim mass(10) as MyClass,i as integer

for i=0 to 10

set mass(i)=new MyClass

set mass(i)=Shablon

next i

' И вот, когда всё вроде бы проконало, начинаем работать с переменной

Shablon.SomeProp=50

mass(2).SomeProp=34

mass(4).SomeProp=10

debug.print "----------------"

debug.print mass(2).SomeProp

debug.print Shablon.SomeProp

debug.print "----------------"

' Так вот. В результате этих махинаций получаю:

----------------

10

10

----------------

Выходит так, что все мои mass'ы работают с одной областью в памяти.

А как этого избежать?

Заранее спасибо!!!

P.S. Также было бы неплохо узнать можно ли как-то унаследовать свойства объекта (к примеру ListBox'а) и работать потом с ним отдельно - чтобы следы работы с новой переменной не отржались на оригинале:

Dim lll As ListBox ' Объекта нет - только переменная

Set lll = List1

lll.AddItem "dddd"

' В результате на List1'е появится "dddd"

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам