林小BA
2016-10-09 09:30
采纳率: 66.7%
浏览 1.4k
已采纳

两个抽象类怎么进行方法交叉调用?

请问有两个抽象类,想互相调用对方的方法,应该如何去做?没法实例化,怎么破?拜托各位了!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 苏陌叶 2016-10-09 09:39
    已采纳

    1,写两个子类,各去继承抽象类,然后调用。
    2,抽象类里面的方法写成静态的。

    点赞 打赏 评论
  • oyljerry 2016-10-09 09:45

    抽象类没法通过实例调用,只能用静态函数来调用

    点赞 打赏 评论
  • Zedee 2016-10-09 10:00

    在A需要调用B的方法A.a()中传入抽象类对象B A.a(B b)

    点赞 打赏 评论
  • 林小BA 2016-10-09 10:43

    谢谢各位!在类里传对象的方法好像不行吧,抽象类没法实例对象

    点赞 打赏 评论
  • 哈士奇超帅 2016-10-10 00:35

    抽象类无法被实例化,因此想要调用必须用静态成员函数,使用如下:
    其中抽象类B调用了抽象类A的X()方法。

     #include <iostream>
    using namespace std;
    class A
    {
    public:
        virtual void F()=0;
        static void X(){cout<<"A:X";}
    };
    
    class B
    {
    public:
        virtual void G()=0;
        void Y(){cout<<"B:";A::X();}
    };
    
    class C: public B
    {
    public:
        virtual void G(){return;}
    };
    int main()
    {
        C c;
        c.Y();
        return 0;
    }
    
    点赞 打赏 评论

相关推荐 更多相似问题