Windows/MFC
error C2243
aucd29
2013. 10. 2. 18:21
class Human
{
};
class Student1 : public Human
{
};
//클래스 상속시 public 을 빼먹고 상속하는 경우가 있다
//이렇게 상속받은 클래스는 알수 없는 에러에 빠져버린다
//"변환은 되지만 , 액세스는 할 수 없습니다" 라는 에러가 발생하면
//잘못된 상속을 의심해 봐야 한다
//public 을 빼먹고 상속받으면 private 상속과 똑같아 진다.
//이는 기존의 public -> private 상태로 상속되며, private는 액세스 불가능 상태로 되어버린다
class Student2 : Human
{
};
class Student3 : private Human
{
};
void main()
{
Human *pH;
Student1 S1; //public 상속
Student2 S2; //디폴트 상속
Student3 S3; //private 상속
pH=&S1;
pH=&S2; //error C2243: '형식 캐스팅' : 'Student3 *__w64 '에서 'Human *'(으)로의 변환이 있지만 액세스할 수 없습니다.
pH=&S3; //error C2243: '형식 캐스팅' : 'Student3 *__w64 '에서 'Human *'(으)로의 변환이 있지만 액세스할 수 없습니다.
}
http://anrudco.blogspot.com/2008/05/c-error.html
{
};
class Student1 : public Human
{
};
//클래스 상속시 public 을 빼먹고 상속하는 경우가 있다
//이렇게 상속받은 클래스는 알수 없는 에러에 빠져버린다
//"변환은 되지만 , 액세스는 할 수 없습니다" 라는 에러가 발생하면
//잘못된 상속을 의심해 봐야 한다
//public 을 빼먹고 상속받으면 private 상속과 똑같아 진다.
//이는 기존의 public -> private 상태로 상속되며, private는 액세스 불가능 상태로 되어버린다
class Student2 : Human
{
};
class Student3 : private Human
{
};
void main()
{
Human *pH;
Student1 S1; //public 상속
Student2 S2; //디폴트 상속
Student3 S3; //private 상속
pH=&S1;
pH=&S2; //error C2243: '형식 캐스팅' : 'Student3 *__w64 '에서 'Human *'(으)로의 변환이 있지만 액세스할 수 없습니다.
pH=&S3; //error C2243: '형식 캐스팅' : 'Student3 *__w64 '에서 'Human *'(으)로의 변환이 있지만 액세스할 수 없습니다.
}
http://anrudco.blogspot.com/2008/05/c-error.html