Здравствуйте, Тёмчик, Вы писали:
Тё>Здравствуйте, AlexGin, Вы писали:
AG>>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса.
Тё>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
Что за дичь! К каким полям класса? Разве что к статическим полям...
Вот пример:
class CMyClass
{
public:
CMyClass() // c-tor
{
}
void foo()
{
}
private:
int m_field1;
static double m_field2;
public:
static void bar()
{
std::cout << m_field1 << std::endl; // OMG!!!
std::cout << m_field2 << std::endl;
}
};
У кого какие мнения — строка с OMG:
— скомпилируется/ не скомпилируется
— выполниться/ не выполниться
AG>>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Тё>Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций.
Я в курсе, что в новых ЯП нет понятия глобальная функция, тем не менее — не будешь спорить, что статические — аналоги глобальных.
НАПОМНЮ — речь шла об C++