파생 클래스 객체에서 동일한 서명으로 기본 클래스 FN에 액세스
-
18-09-2019 - |
문제
파생 클래스 객체를 사용하여 파생 클래스 함수의 서명과 동일한 기본 클래스 함수에 액세스 할 수 있습니까?. 다음은 아래에 언급 한 내용의 샘플입니다.
class base1 {
public:
void test()
{cout<<"base1"<<endl;};
};
class der1 : public base1 {
public:
void test()
{cout<<"der1"<<endl;};
};
int main() {
der1 obj;
obj.test(); // How can I access the base class 'test()' here??
return 0;
}
해결책
상속 된 이름과 충돌 할 때 메소드 이름을 완전히 자격을 갖추어야합니다.
OBJ.Base1 :: test () 사용
다른 팁
가상 키 단어를 제공하지 않은 경우 파생 클래스의 메소드를 무시할 수 없습니다.
class base1
{
public:
void test()
{
cout << "base1" << endl;
};
};
class der1 : public base1
{
public:
void test()
{
cout << "der1" << endl;
};
};
int main()
{
der1 obj;
obj.test(); // How can I access the base class 'test()' here??
return 0;
}
따라서 위의 코드는 잘못되었습니다. 당신은 주어야합니다 :
virtual void test();
기본 클래스에서
당신은 이것을 사용할 수 있습니다 :
((base)obj).test();
제휴하지 않습니다 StackOverflow