추상 기본 클래스의 파생 클래스가 있다고 가정 해 보겠습니다. 추상 기본 클래스에 대한 포인터는 main에서 선언되고 "new"를 통해 파생 클래스에 할당됩니다. 파생 클래스의 멤버 함수가 아니라 파생 클래스의 개체가 아닌 기본 클래스에 대한 포인터에서 어떻게 파생 클래스의 멤버 함수에 액세스합니까?다형성 : 파생 클래스 멤버 함수에 어떻게 액세스합니까?
예 :
#include <iostream>
using namespace std;
class clsStudent
{
public:
virtual void display() = 0;// {cout<<"Student\n";}
};
class clsInternational : public clsStudent
{
public:
void display(){cout<<"International\n";}
void passportNo(){cout<<"Pass\n";}
};
class local : public clsStudent
{
public:
void display(){cout<<"International\n";}
void icNo(){cout<<"IC\n";}
};
int main()
{
clsStudent * s = new clsInternational;
clsStudent * s2 = new local;
s->display();
s->passportNo(); //This won't work
return 0;
}
. 파생 클래스 함수에 액세스하려면 포인터를 파생 형식으로 캐스트해야합니다. –
'passNo()'함수는'clsInternational','local','clsStudent' 클래스에 정의되어 있지 않습니다. 오타입니까? 그렇다면 무엇이어야 하는가? – Oswald
@Oswald s-> passportNo() 인 것 같아서 죄송합니다. – user3025784