КИТА unofficial

Ваши интересы => Викторины и конкурсы => Тема начата: vimmax от Ноябрь 14, 2007, 05:07:16



Название: Искусство программирования (задача 10)
Отправлено: vimmax от Ноябрь 14, 2007, 05:07:16
Чем отличается функция и функция-метод класса (С++)?
Например:

Код: (cpp)
int Func1(int p)
{
       return (p+8);
}

и

Код: (cpp)
class cTemp
{
public:
    int Func1(int p)
    {
       return (p+8);
    }
}


Название: Re: Искусство программирования (задача 10)
Отправлено: Sochin от Ноябрь 14, 2007, 05:11:05
Функция-метод класса при вызове неявно получает указатель на текущий экземпляр класса, чего не происходит при вызове обычной функции.


Название: Re: Искусство программирования (задача 10)
Отправлено: vimmax от Ноябрь 14, 2007, 05:20:10
Sochin а точнее: в каком месте и что она потом делает с этим указателем ?


Название: Re: Искусство программирования (задача 10)
Отправлено: Sochin от Ноябрь 14, 2007, 05:23:38
При вызове метода класса компилятор первым параметром передает указатель на экземпляр класса. Используется этот указатель для доступа к свойствам вызвавшего объекта. Собственно, этот указатель это ничто иное как указатель this.


Название: Re: Искусство программирования (задача 10)
Отправлено: vimmax от Ноябрь 14, 2007, 05:54:21
Sochin правильно, +1.