В С++ какая разница между методом и функцией

Возможный дубликат:
В чем разница между методом и функцией

Я пытаюсь правильно исправить свою терминологию.

В чем разница между методом и функцией в отношении С++.

Является ли это тем, что метод ничего не возвращает и просто выполняет операции преформ в своем классе; а функция имеет возвращаемое значение?

Ответы

Ответ 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

Даже метод может иметь возвращаемое значение.

Метод является функцией класса. Например, класс "автомобиль" имеет метод "ускорить".