C++ C++;类多重继承错误

C++ C++;类多重继承错误,c++,inheritance,syntax-error,multiple-inheritance,C++,Inheritance,Syntax Error,Multiple Inheritance,我一直在研究多重继承。我已经做了一个程序,但它一直给我一个错误,比如Human::getInfo不明确。我如何解决这个问题 这是我的密码 #include <iostream> #include <string> using namespace std; class Man{ protected: std::string name; public: void getInfo(string hName){ name = hName;

我一直在研究多重继承。我已经做了一个程序,但它一直给我一个错误,比如Human::getInfo不明确。我如何解决这个问题 这是我的密码

#include <iostream>
#include <string>
using namespace std;

class Man{
protected:
    std::string name;
public:
    void getInfo(string hName){
        name = hName;
    }
    void showInfo(){
        std::cout << "Your name is: " << name << std::endl;
        std::cout << "And you are a MAN" << std::endl;
    }
};

class Women:public Man{
public:
    Women(){}
    void Women_showInfo(){
        std::cout << "Your name is: " << name << std::endl;
        std::cout << "And you are a Women" << std::endl;
    }
};

class Human:public Women, public Man{
public:
    Human(){}
};
int main(){
    //local variables
    string choice;
    string name;
    //class object
    Human person;
    //user interface
    cout << "What your name: " ;
    cin >> name;
    cout << "Are you a [boy/girl]: ";
    cin >> choice;
    //saving name 
    person.getInfo(name); //ambiguous
    //if handler
    if (choice == "boy"){
        person.showInfo(); //ambiguous 
    }else if(choice == "girl"){
        person.Women_showInfo(); //works fine no error
    }
    system("pause");
    return 0;
}
#包括
#包括
使用名称空间std;
班主任{
受保护的:
std::字符串名;
公众:
void getInfo(字符串名){
name=hName;
}
void showInfo(){

std::cout你的设计很有问题,但是特别的歧义出现了,因为
人类继承了
女性
男性
,但是
女性
已经继承了
男性


因此
Human
中有两个
getinfo()
函数-
Human::Man::getinfo()
Human::Woman::Man::getinfo()
。除非您告诉编译器要使用哪一个,它不知道,因此会报告一个错误。

通过在Human类声明中添加以下内容:
使用Man::getinfo()如果你不介意的话,你能告诉我如何使用这个代码吗?因为它很难理解@Jonathan Potterin而不是
person.getInfo(name);
你会做
person.Man::getInfo(name);
或者
person.Woman::Man::getInfo(name);
。我做了,但上面写着基类“Man”是不明确的。@JonathanPotterIn事实上它给了我一个错误:非静态成员引用必须是相对于特定对象的