在C ++中,方法和函数之间有什么区别

时间:2011-12-21 21:15:13

标签: c++

  

可能重复:
  What is the difference between a method and a function

我正在努力使我的术语正确。

特别是对于C ++,方法和函数之间有什么区别。

是一个方法什么都不返回,只是在它的类上预先形成操作;函数有返回值吗?

5 个答案:

答案 0 :(得分:50)

就C ++标准而言,没有“方法”这样的东西。该术语在其他OO语言(例如Java)中用于引用类的成员函数。

在常见的用法中,你会发现大多数人会或多或少地交替使用“方法”和“功能”,尽管有些人会限制对成员函数使用“方法”(而不是“自由函数”,不是一个班级的成员。)

答案 1 :(得分:14)

对不起,这是我的一个小小的烦恼。方法只是一个通用的OO类型的术语。 C ++中不存在方法。如果您打开C ++标准,您将找不到任何“方法”。 C ++具有各种风格的功能。

答案 2 :(得分:1)

方法是类的成员函数,但在C ++中,它们通常被称为成员函数而不是方法(一些程序员来自其他语言,如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

答案 3 :(得分:1)

术语“方法”不用于c ++,而是成员函数

如果您正在考虑过程与函数之间的区别,那么c ++的差异就是无。 Pascal几乎是最后一种区分语言。 (ADA后来被构建并使用了“程序”一词,感谢Brian Neal。)

声明为void的任何函数,成员与否,都是旧词汇表中的一个过程。

成员函数是一个复杂的野兽,函数是一个简单的函数。

会员功能

  • 是班级
  • 的成员
  • 可以是私人的
  • 可以受到保护
  • 可以公开
  • 可以是虚拟的
  • 可以是纯虚拟

答案 4 :(得分:-1)

即使方法也可以有返回值。

方法是类的功能。例如,“car”类有一种方法“加速”。