In C++, what is the difference between a method and a function
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What is the difference between a method and a function
我正在努力纠正我的术语。
一个方法和一个函数在C++方面的区别是什么?
方法是否不返回任何内容,只对其类执行操作;而函数具有返回值?
就C++标准而言,没有所谓的"方法"。此术语用于其他OO语言(例如Java),以引用类的成员函数。
在常见用法中,您会发现大多数人或多或少会使用"方法"和"函数",尽管有些人会将"方法"的使用限制为成员函数(而不是不是不是类成员的"自由函数")。
对不起,这是我的一个小毛病。方法只是一个通用的OO类型术语。方法不存在于C++中。如果你打开C++标准,你将找不到任何提及"方法"的东西。C++具有各种各样的功能。
"方法"一词不在C++中使用,而是用于成员函数。
如果你在考虑一个过程和一个函数之间的区别,那么C++中的差异就没有了。帕斯卡几乎是最后一种做出这种区分的语言。(Ada是后来构建的,使用了术语procedure,谢谢Brian Neal。)
任何被声明为无效的函数,无论是否为成员,都将是旧词汇表中的过程。
成员函数是一个复杂的beast,函数是一个简单的函数。
成员函数
- 是一个类的成员
- 可以是私人的
- 可以被保护
- 可以公开
- 可以是虚拟的
- 可以是纯虚拟的
方法是类的成员函数,但在C++中,它们通常比方法(称为Java的调用其他方法的程序员)更能称之为成员函数。
函数通常是指自由函数,它不是类的成员。
所以当一个成员函数是一个函数时,一个函数不一定是一个成员函数。
例子:
1 2 3 4 5 6 7 8 9 10 | 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 |
即使是方法也可以有返回值。
方法是类的函数。例如,类"car"有一个方法"accelerate"。