Нет. Метод класса един для всех объектов класса, и разумеется, не создается каждый раз при создании объекта.
см. также:
14. Что такое метод? Как вызывается метод?
Показаны сообщения с ярлыком метод. Показать все сообщения
Показаны сообщения с ярлыком метод. Показать все сообщения
пятница, 22 октября 2010 г.
среда, 13 октября 2010 г.
15. Может ли метод быть приватный?
Конечно.
Представим функцию:
Перед принятием изменений происодит проверка, все хорошо и логично. Если бы нельзя было сделать commit() приватной, то пользователь данного класса мог бы напрямую вызвать commit() без проверки, что может быть опасно.
Представим функцию:
void A::save(){
if(check()){
commit();
}
}
Перед принятием изменений происодит проверка, все хорошо и логично. Если бы нельзя было сделать commit() приватной, то пользователь данного класса мог бы напрямую вызвать commit() без проверки, что может быть опасно.
вторник, 12 октября 2010 г.
14. Что такое метод? Как вызывается метод?
а. Функция, принадлежащая классу. Методу доступны все поля класса (которому он принадлежит).
б.
2. Если есть указатель на A (A* pa), то:
2а.
2б.
Дополнение:
При инициализации класса A, в памяти создается метод f. На низком уровне он представляет собой обычную функцию с дополнительным параметром this (указатель на объект, вызвавший функцию). Поэтому a.f(5) заменяется компилятором на что-то вроде:
б.
class A{
public:
void f(int p);
};1. Допустим, есть объявление: A a;a.f(5); //вызов2. Если есть указатель на A (A* pa), то:
2а.
(*pa).f(5); //вызов2б.
pa->f(5); //синтаксически более удобный и рекомендуемый вызов.Дополнение:
При инициализации класса A, в памяти создается метод f. На низком уровне он представляет собой обычную функцию с дополнительным параметром this (указатель на объект, вызвавший функцию). Поэтому a.f(5) заменяется компилятором на что-то вроде:
A__f(&a, 5);
Подписаться на:
Комментарии (Atom)