使用同名的纯虚方法对抽象类进行多重继承?

时间:2015-03-26 00:38:10

标签: c++ abstract-class multiple-inheritance pure-virtual

如果使用同名的纯虚方法继承两个抽象类,那么如果我实现该方法会发生什么?我是为两个抽象类实现它们还是编译器选择实现它们?

/ConsoleCalc::DataFlow::Main

namespace ConsoleCalc {

  namespace DataFlow
  {

    class Main
    {

      public:
        Main();
        virtual ~Main()=0; // exit
        virtual int Start() =0;

    };

  };
};

//ConsoleCalc::UserInterface::Menu
#include <iostream>

namespace ConsoleCalc {

  namespace UserInterface
  {

        class Menu
        {
          private:
            std::string MenuText;
          public:
            Menu();
            virtual ~Menu()=0;
            virtual int Start() =0;
        };
  };
};

//ConsoleCalc::
#include "Main.h"
#include "Menu.h"
namespace ConsoleCalc
{
  namespace Application
  {
    class Application :
                public ConsoleCalc::DataFlow::Main,
                private ConsoleCalc::UserInterface::Menu
    {
      public:
        Application();
        virtual ~Application() =0;
        virtual int Start(); //implementation
    };
  };
};

方法问题是Start。有没有办法实现两种Start方法?或者一个实现是否足够?或者编译器是否以某种方式选择实现哪一个,可能会抛弃另一个?

0 个答案:

没有答案