namespace |
Здравствуйте, гость ( Вход | Регистрация )
namespace |
rp80 |
29.11.2011, 16:20
Сообщение
#1
|
Студент Группа: Участник Сообщений: 36 Регистрация: 10.9.2011 Пользователь №: 2860 Спасибо сказали: 0 раз(а) Репутация: 0 |
a.h
a.cpp
main
Если убираем static в a.h, получаем ошибку линковки multiple definition of `N::x'. Со статиком же компилится, линкуется и выводит 300 и 25. Вопросы: 1. Почему ошибка без статик? 2. Почему 300 и 25? Спасибо. |
|
|
Влад |
30.11.2011, 10:11
Сообщение
#2
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
И даже более того - даже если эту переменную объявить в хидере как статическую, в каждую единицу компиляции будет включен свой экземпляр переменной. Какие любопытные эффекты могут возникнуть оттого, что программист думает, что обращается к глобальной переменной x, а на самом деле обращается только к экземпляру, существующему только в данной единице компиляции -
|
|
|
Текстовая версия | Сейчас: 20.4.2024, 13:28 |