Статические функции
От: Ash-2 Россия  
Дата: 01.04.03 12:51
Оценка:
Кто-нибудь может объяснить: чем статические функции в классах отличаются от обычных?
1. Есть мнение: "Каждый экземпляр класса содержит все элементы этого класса..." С данными все понятно, но функция — тоже элемент, т.е. если у меня 2 экземпляра класса, то должно быть два экземпляра функции (т.е. один и тот же код в памяти по разным адресам... бред...)

2. Есть другое мнение (нравится больше):
class A{
void Fun(int i);
}
Функция Fun, заменяется компилятором на
void Fun(int i, A* pointer);
И соответственно при вызове передается только указатель на класс....
НО, тогда непонятно чем отличается статическая функция, почему адрес этой функции известен на этапе компиляции и почему именно статическая "одна для всех экземпляров" (ведь и эта функция — одна)???

Спасибо за то, что дочитали до конца, ну а если еще и ответите...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.