gpt4 book ai didi

c++ - Objective-C 中的 C++ 纯虚函数等效于什么?

转载 作者:可可西里 更新时间:2023-11-01 15:51:39 34 4
gpt4 key购买 nike

简单的答案是协议(protocol)。

还有一点就是据说ObjectC中的所有方法都是virtual的,所以ObjC中就不用说virtual了。

我觉得很难理解这个概念。

关于这个问题有什么意见可以弄清楚吗?

感谢评论。

最佳答案

Simple answer would be Protocol.

简单但错误。协议(protocol)是一种接口(interface)规范。它是对象必须(暂时忽略 @optional 关键字)响应的消息集合。

术语“虚函数”在 Objective-C 中没有直接的对应物。在 Objective-C 中,您不调用对象上的函数,而是向它们发送消息。然后对象本身决定如何响应消息,通常是通过在其类对象中查找消息,找到关联的方法并调用它。请注意,这一切都发生在运行时,而不是编译时。

消息(或“选择器”给它们的技术术语)和方法之间的映射完全由@implementation 构建。 @interface 中的方法声明只是为了向编译器提供警告您可能忘记了方法实现所需的信息。而且它只是一个警告,因为直到运行时你才能知道对象是否真的响应消息。例如,其他人可以向现有类添加一个类别,为缺少的方法提供实现,或者一个类可以覆盖 forwardingTargetForSelector: 以转发它不响应其他地方的消息。

关于c++ - Objective-C 中的 C++ 纯虚函数等效于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374677/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com