【问题标题】:Late binding and objective-c 2.0后期绑定和objective-c 2.0
【发布时间】:2011-12-22 12:51:54
【问题描述】:

在我开始之前让我问一下,在objective-c 2.0中你可以让一个基类指针引用一个子类对象吗?

如果是这样,objective-c 中是否有类似于 c++ 虚拟成员函数的东西。

例如,如果从基类指针调用子类对象,它会调用子类方法(它正确地覆盖了基类方法)吗?它会像 Java 一样被强制执行,还是程序员可以控制它?

编辑:是否可以将任何指针类型分配给另一个,限制是什么?前任: 你能说吗

子类 *s = ... 基类 *b= s

还是只能通过分配来完成?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    您可以让基类指针保存子类实例地址的值。所以

    Subclass s* = /* get an object instance */
    Baseclass b* = s;
    

    是可能的(这不必在初始化期间)。没有限制。

    类似“虚拟方法”的功能类似于 Java,因此每个方法都是虚拟的,因此您无法控制它(例如,始终调用子类方法)。发送到对象的消息实际上具有后期绑定。

    Implement a pure virtual method in Objective-C

    【讨论】:

    • 不是纯虚拟方法,只是我想要的虚拟
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多