아래 그림을 기반으로 코드를 작성했습니다. 컴파일러는 이러한 오류를 보여여러 클래스 상속?
#include<iostream>
#include<string>
using namespace std;
class person
{
private:
int code;
string name;
public:
void setCode(int c) { code=c; }
int getCode() { return code; }
void setName(string s) { name=s; }
string getName() { return name; }
};
class account : public person
{
private:
double pay;
public:
void setPay(double p) { pay=p; }
double getPay() { return pay; }
};
class admin : public person
{
private:
string experience;
public:
void setExper(string e) { experience=e; }
string getExper() { return experience; }
};
class master : public account, public admin
{
};
int main()
{
master mastObj;// create master object.
mastObj.setName("John");
system("pause");//to pause console screen, remove it if u r in linux
return 0;
}
:
Error 1 error C2385: ambiguous access of 'setName'
Error 2 error C3861: 'setName': identifier not found
Error 3 IntelliSense: "master::setName" is ambiguous
첫째, 귀하의 질문에 제목은 문장의 끝 부분에 관계없이 물음표, 실제 문제가 아닙니다. 둘째, 문제를 실제로 설명하고, 코드 조각을 붙여 넣는 대신에 지금까지 해본 것을 설명하고 다른 사람들이 문제를 해결하도록하는 것이 좋습니다. –
코드 서식이 엉망이었습니다. 인간을위한 코드도 있습니다 :) 특히 _us_가 그것을 읽고 싶어하기 때문에. – sehe
가능한 복제 [가상 상속 혼란] (0120)을 참조하십시오. – Nawaz