Почему такой код вызывает ошибку?
library A
private integer i 

scope B 
private integer i 
endscope

endlibrary

Принятый ответ

да для компилятора jass ты правильно думаешь,но ты забыл там совсем другой компилятор(vjass) который думает по другому ну смотри
library A{
private int i =0
	scope B{
	private int i =0
	
	  void main(){
		i = 10//какой i заполняться
		
		}
	
	}

}
0
17
7 лет назад
Отредактирован ledoed
0
ну если ты в области B напишешь i = 6 то какая переменная заполниться
0
10
7 лет назад
Отредактирован LordDracula
0
Вроде как это должно копилиться в Aчисло_i и A_Bчисло_i(внутри Bчисло__i) и при правильной записи(внутри области B.i A.i и снаружи A.i и A.B.i) нет причин для конфликта. Но просто написав подобным образом, без каких-либо операции - ошибка. Я vjass почти не знаю и, скорее всего, что-то не правильно понимаю поэтому и спрашиваю
1
17
7 лет назад
Отредактирован ledoed
1
да для компилятора jass ты правильно думаешь,но ты забыл там совсем другой компилятор(vjass) который думает по другому ну смотри
library A{
private int i =0
	scope B{
	private int i =0
	
	  void main(){
		i = 10//какой i заполняться
		
		}
	
	}

}
Принятый ответ
0
30
7 лет назад
Отредактирован Clamp
0
Не пользуйтесь scope, это deprecated фича vJass, она не несёт никакой практической пользы, только усложняет и запутывает структуру кода.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.