В С++ какая разница между методом и функцией
Возможный дубликат:
В чем разница между методом и функцией
Я пытаюсь правильно исправить свою терминологию.
В чем разница между методом и функцией в отношении С++.
Является ли это тем, что метод ничего не возвращает и просто выполняет операции преформ в своем классе; а функция имеет возвращаемое значение?
Ответы
Ответ 1
Что касается стандарта С++, то нет такой вещи, как "метод". Эта терминология используется в других языках OO (например, Java) для обозначения функций-членов класса.
В обычном использовании вы обнаружите, что большинство людей будут использовать "метод" и "функцию" более или менее взаимозаменяемо, хотя некоторые люди будут ограничивать использование "метода" для функций-членов (в отличие от "бесплатных функций", которые не являются членами класса).
Ответ 2
Извините, но это один из моих питомцев. Метод - всего лишь общий термин OO-типа. Методы не существуют в С++. Если вы откроете стандарт С++, вы не найдете никаких упоминаний о "методах". С++ имеет функции различных ароматов.
Ответ 3
Метод является функцией-членом класса, но в С++ они чаще называются функциями-членами, чем методы (некоторые программисты, поступающие с других языков, таких как Java, вызывают их методы).
Обычно функция означает свободную функцию, которая не является членом класса.
Таким образом, хотя функция-член является функцией, функция не обязательно является функцией-членом.
Пример:
void blah() { } // function
class A {
void blah() { } // member function (what would be a "method" in other languages)
};
blah(); // free functions (non-member functions) can be called like this
A ainst;
ainst.blah(); // member functions require an instance to invoke them on
Ответ 4
Термин "Метод" используется не в c++, а скорее в функции-члене.
Если вы думаете о разнице между процедурой и функцией, тогда разница в c++ равна нулю. Паскаль был в значительной степени последним языком, который сделал это различие. (ADA был построен позже и использовал термин "процедура", спасибо Брайану Нилу.)
Любая функция, член или нет, объявленная недействительной, будет процедурой в старом словаре.
Функция-член - это сложный зверь, функция - это простая функция.
Функция-член
- является членом класса
- может быть приватным
- можно защитить
- может быть публичным
- может быть виртуальным
- может быть чисто виртуальным
Ответ 5
Даже метод может иметь возвращаемое значение.
Метод является функцией класса. Например, класс "автомобиль" имеет метод "ускорить".