如果我在C中编写抽象数据类型,编写的函数是为了对这些数据类型执行操作并在接口(.h文件)中公开,称为 functions , methods < / em>,还是完全不同的东西?我似乎无法在任何地方找到建设性的答案。 方法是C ++特定术语吗?
答案 0 :(得分:6)
方法是否是C ++特定术语?
“方法”是面向对象的编程术语,指的是作为对象命名空间一部分的函数。因此,您可以使用C ++,Java,Objective-C等语言为对象创建方法。另外,在C语言中,您仍然拥有独立的函数,而不是方法。
请记住,类方法的“官方”C ++术语是“成员函数”,并在规范的第9.3节中进行了描述。
答案 1 :(得分:4)
我总是使用“method”作为“成员函数”的同义词,这意味着C ++,因为C没有这样的东西。
然而,另一方面,人们可能会认为foo_alter_state
的作用在于:
struct foo {
// implementation stuff;
};
void foo_alter_state(struct foo *self);
仍是一种在foo
上运行的方法,虽然是独立的。它基本上是C中的OOP,但是手工实现。
如果struct foo;
仅在标题中声明,但未在任何地方公开定义,则此观点可能尤其如此。
答案 2 :(得分:3)
方法是与类相关的函数。
由于C中不存在类,因此技术上一切都是函数。
答案 3 :(得分:2)
Method通常用于描述作为OOP中类的一部分的“函数”。函数只是 - 函数,而不是类的一部分。
在.h文件中我称之为“函数声明”,在.c中我称之为“函数实现”......我不是专家,只是我的.02。
答案 4 :(得分:1)
我不认为这是一个特别有用的区别,但一般来说,你称之为函数,因为单词 method 意味着一大堆C不提供的OOP东西。像the following:
方法具有特殊属性,在运行时,它们可以访问 存储在类实例(或类实例或类)中的数据 对象或对象)它们与之相关并因此能够 控制实例的状态。
但是我经常听到在Java上长大的人将C 函数称为方法,我从未对他们的意思感到困惑。甚至没有一点点。
但是,您可能希望进行以下(松散)区分:
程序是执行某项操作的代码块
功能是将一个或多个输入与输出相关联的过程
方法是属于某个类或该类实例的过程
答案 5 :(得分:1)
严格地说,函数是为给定输入提供输出的操作。而方法是绑定到类型的函数。 C只有功能,我认为你认为没有任何不同。
但是,如果您正在实现ADT,例如,将函数指针放在结构中(对于获取结构实例的上下文指针的函数),那么您使用方法模仿对象,那么我看不到有理由将它们称为“作为功能实现的方法”。