容器class A 包含 class B 的一个实例,
MB1是 B 的一个方法,
有没有办法在 A 中对 B 的方法MB1进行重载?

解决方案 »

  1.   

    直接的重载好像没有这个语法吧,重载应该只是针对祖先类中方法而言的。不过你是不是可以先由B继承一个C,在C中申明C.MC1对B.MB1进行重载,实现C.MC1时 inherited的同时调用一个本地方法C.MC2,将class A中B实例的祖先改为C,再在A中定义一个本地方法指向C.MC2,这样或许可以瞎说的,还得看高手指点,就当抛块砖吧UP
      

  2.   

    那就不叫重载!
    你要在classA实现MB1方法,即在MB1中调用Class B的MB1方法建议你先看懂什么叫面向对象再说!
      

  3.   

    “一个方法可以使用overload 指示字来重新声明,此时,若重新声明的方法和祖先类的方法具有不同的参数,它只是重载了这个方法,并没有隐藏它。当在派生类中调用此方法时,依靠参数来决定到底调用哪一个。”——《Object Pascal中文参考手册》
    通过上面这段话我们可以知道,重载是一个派生类针对其主线类的一种行为。
    而容器类是指一个类,它的一个实例又来存放其他类的实例,通常在容器类中存放的都是其他类型的实例的一个指针
    所以,只要你的类A不是一个类B的派生类(ClassA作为一个容器类,通常不会有这种继承情况发生),就谈不到重载B的某个方法。
    你说指的是不是只是实现一个类B的方法呢?
    我所理解的就是这样,还往高手指正
      

  4.   

    呵呵,从class B派生class C,然后在Class A中包含其实例
      

  5.   

    容器class A 包含 class B 的一个实例,
    MB1是 B 的一个方法,
    有没有办法在 A 中对 B 的方法MB1进行重载?class A不是class B的派生类不是继承没重载(override)的说法
      

  6.   

    同意scsun(明月清风) 
    先从class b 派生 class c ,
    class c 中重载MB1
    class a 再包含class c.哈哈!