如果使用同名的纯虚方法继承两个抽象类,那么如果我实现该方法会发生什么?我是为两个抽象类实现它们还是编译器选择实现它们?
/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方法?或者一个实现是否足够?或者编译器是否以某种方式选择实现哪一个,可能会抛弃另一个?