static promenlivi v Object pascal?
6 отговора
187 прегледа
static promenlivi v Object pascal?
В C++ ако член променлива на даден клас се обяви като static, после всички обекти на този клас се обръщат към един и същ адрес на паметта по отношение на тази променлива. Може ли в Обектен Паскал да се постигне същия ефект?
Re: static promenlivi v Object pascal?
Да, може да се имитира, като се дефинира променлива в unit-а, към която да се обръщат обектите.
Искам само да отбележа, че дефинирането на статични член-променливи противоречи на принципите на обектното програмиране. Така че може би е по-добре да преразгледаш проекта си. Както казваше преподавателя ни по ОО-програмиране, "ако опрете до множествено наследяване и статични член-променливи, значи имате грешка в проекта"...

Искам само да отбележа, че дефинирането на статични член-променливи противоречи на принципите на обектното програмиране. Така че може би е по-добре да преразгледаш проекта си. Както казваше преподавателя ни по ОО-програмиране, "ако опрете до множествено наследяване и статични член-променливи, значи имате грешка в проекта"...
Re: static promenlivi v Object pascal?
I kak sha naprawish inache broqch na instance-te? A towa ponefgash se nalaga... predpolagam za twa pita choweka a ti mu iznasesh lekciq po teoriq na programiraneto 
------------------------------
I got a COMPILER, and I'm not afraid to use it!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: static promenlivi v Object pascal?
Броенето на инстанциите не е работа на класа, а на някакъв менажер за управление на класа. По аналогия на фабриките в COM-обектите.
А относно лекциите - щом някой има желание да преоткрива колелото - моля, негова си работа. Но нали този форум е за това - да се обменя опит. А който има уши, да слуша.
А относно лекциите - щом някой има желание да преоткрива колелото - моля, негова си работа. Но нали този форум е за това - да се обменя опит. А който има уши, да слуша.
Типизирана константа
Hi,
понякога наистина се налага обща статична променлива. Само че не е в класа, а в unit или във фунцията, която ще я използва
const
VariableName: TypeName = Initial Value;
Дали завиването на крушка е софтуерен проблем?
понякога наистина се налага обща статична променлива. Само че не е в класа, а в unit или във фунцията, която ще я използва
const
VariableName: TypeName = Initial Value;
Дали завиването на крушка е софтуерен проблем?
По-добре...
var
VariableName: TypeName = Initial Value;
С const също става, обаче това е остатък от стария Pascal.