раздница в 2х последующих классах в том, что один из них определен, как static, в каждом методе своя статическая переменная. В функции main создается по 2 экземлпляра класса и запускается метод. Казалось бы для каждого экземпляра класса one должна быть создана своя статическая переменная, тогда как для экземпляров класса two она должна быть одна, так как они имеют один общий метод. #include <iostream> class one { public: void method () { static int var = 0; var++; std::cout << var << std::endl; } }; class two { public: static void method () { static int var = 0; var++; std::cout << var << std::endl; } }; int main (void) { one a1, b1; two a2, b2; a1.method (); // у каждого своя статическая переменая переменная var b1.method (); // и она будет равна 1 a2.method (); // одна единственная var для всех, b2.method (); // т.е. после этих вызовов var будет равна 2 } tima@tima:~/source/temp> g++ -o st st.cpp tima@tima:~/source/temp> ./st 1 2 1 2 почему не так? tima@tima:~/source/temp> g++ -o st st.cpp tima@tima:~/source/temp> ./st 1 1 1 2
Ответ на:
комментарий
от kitov
Ответ на:
комментарий
от acefsm
Ответ на:
комментарий
от kitov
Ответ на:
комментарий
от acefsm
Ответ на:
комментарий
от dilmah
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [C++] [Жаба] Это магия? (2008)
- Форум [C++] Перегрузка new и delete в производном классе (2011)
- Форум 'this' in lambda and in class method is not the same when using vector of std::thread (2021)
- Форум [С++][полиморфизм] цепочка наследований (2011)
- Форум вопрос по С++ (операторные функции) (2008)
- Форум gcc bug (global array of templated class - no destructors) (2005)
- Форум указатель на статический класс, неверный указатель (2012)
- Форум Виртуальный метод вызывается из реализации родителя, а не потомка (2014)
- Форум Вопрос по С++ (2004)
- Форум python: повышающее преобразование? (2008)