继承和派生 类
inheritance and derived classes
编译器说第 22 行(类 doumbClass 中)的函数 dummy() 不明确。我该如何解决?
#include<iostream>
#include<iomanip>
using namespace std;
class BusinessClass {
public :
virtual void dummy(){
cout<<"businessClass"<<endl;
}
};
class EconomyClass {
public:
void dummy() {
cout<<"economyClass"<<endl;
}
};
class DoumbClass : public BusinessClass, public EconomyClass{
public:
void moreDumb(){
dummy();
}
};
int main(int argc, char **argv)
{
DoumbClass xclass;
xclass.moreDumb();
return 0;
}
您需要指定要调用的基函数
你可以做到这一点。
void moreDumb() {
EconomyClass::dummy();
}
或
void moreDumb() {
BusinessClass::dummy();
}
正如您可以使用 Arkady Godlin 方法一样,您也可以在 class 声明中指定要使用的 dummy
函数,如果您事先知道的话。像这样:
class DoumbClass :public BusinessClass,public EconomyClass
{
public:
using BusinessClass::dummy;
//or using EconomyClass::dummy;
};
编译器说第 22 行(类 doumbClass 中)的函数 dummy() 不明确。我该如何解决?
#include<iostream>
#include<iomanip>
using namespace std;
class BusinessClass {
public :
virtual void dummy(){
cout<<"businessClass"<<endl;
}
};
class EconomyClass {
public:
void dummy() {
cout<<"economyClass"<<endl;
}
};
class DoumbClass : public BusinessClass, public EconomyClass{
public:
void moreDumb(){
dummy();
}
};
int main(int argc, char **argv)
{
DoumbClass xclass;
xclass.moreDumb();
return 0;
}
您需要指定要调用的基函数 你可以做到这一点。
void moreDumb() {
EconomyClass::dummy();
}
或
void moreDumb() {
BusinessClass::dummy();
}
正如您可以使用 Arkady Godlin 方法一样,您也可以在 class 声明中指定要使用的 dummy
函数,如果您事先知道的话。像这样:
class DoumbClass :public BusinessClass,public EconomyClass
{
public:
using BusinessClass::dummy;
//or using EconomyClass::dummy;
};