Люди, вот если в библиотеке (Library) сделать допустим переменную/функцию/.. и т.д. приватной (private int Int), она ж потом после парсинга в чистый джасс будет иметь имя (Library___Int) или (Library__Int), то есть имя библиотеки + 2 или 3 нижних подчеркивания (по рандому ставится, не знаю от чего это зависит) и имя переменной.
К сути, можно ж как-то определить какой именно разделитель __ или ___?
К сути, можно ж как-то определить какой именно разделитель __ или ___?
Вот идея, но надо протестить.
К тому же не уверен что сработает, мб кто знает способ?
К тому же не уверен что сработает, мб кто знает способ?
library Library initializer Init{
define{
private Check=Int
Divide=0
}
#if Library___Int==Check then
setdef Divide=___
#else
setdef Divide=__
#endif
void Init(){
BJDebugMsg(`Divide`)
}
}
Принятый ответ
nvc123, та уже не надо, такой вариант не катит. Вообще, как оказалось, определить разделитель во время компиляции невозможно (
Но есть альтернатива, при которой разделитель будет всегда равен ___ (3 нижних подчеркивания)
library Test{
private int Check
struct Test{
private static int Check
}
}
В таком случае переменные будут определяться как
Test___Check=0 // переменная библиотеки
Test__Check=0 // переменная структуры
Может кому понадобится, хотя вряд ли
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
заменить private на public
вообще private нужен для инкапсуляции
если инкапсуляции нету то нафига его писать?