Именно пространство: Разлика между версии
Изтрито е съдържание Добавено е съдържание
obvious factual error |
м Bot: Automated text replacement (-( +(); козметични промени |
||
Ред 120:
Класифицирането по именни пространства в C++ е йерархично. Например, ако разгледаме именното пространство храна::супа, идентификаторът пиле се отнася до храна::супа::пиле. Ако храна::супа::пиле не съществува, тогава се отнася до храна::пиле. Ако нито храна::супа::пиле, нито храна::пиле съществуват, тогава пиле се отнася до ::пиле, идентификатор в глобалното именно пространство.
Именните пространства в C++ най-често се използват, за да се избегнат т.нар "сблъсъци" при именуване. въпреки че именните пространства са широко използвани в този език, по-старите програми, които са писани на него, не ползват тази негова функционалност. Например, цялата стандартна библиотека на C++([http://en.wikipedia.org/wiki/C%2B%2B_standard_library standard library]) е дефинирана във namespace std, но преди стандартизацията много от компонентите
Следният пример демонстрира употребата на именни пространства в C++:
Ред 163:
В Java, идеята за именно пространство е пренесена в пакети(packages). Целият код представлява част от пакет, въпреки че изричното му посочване не е задължително. Достъпът до код от други пакети се осъществява чрез използването на името на пакета като представка пред съответния идентификатор, например класът String в пакета java.lang може да бъде достъпен като: java.lang.String([http://en.wikipedia.org/wiki/Fully_qualified_name тази конструкция представлява цялото име на даден клас]). Подобно на C++, Java предлага конструкция, която прави ненужно изписването името на пакета.
Въпреки това, определени функции(
В Java(както и Ada, C# и др.), именните пространства/пакетите изразяват семантични категории код. Например, в C# именното пространство
Колко специфични са тези категории и от колко задълбочена йерархия са част, е различно при различните езици.
|